1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP] Como adicionar uma condição a uma função.

Discussão em 'Web Development' iniciada por jotix, 20 de Agosto de 2008. (Respostas: 13; Visualizações: 1125)

  1. jotix

    jotix Power Member

    Num painel backoffice onde se activa e termina a exposição de banners (pedidos pelos anunciantes), em que, quando se clica no botão START o banner é colocado online no site, e quando se clica no botão STOP o banner é retirado do site.

    [​IMG]

    O que eu pretendia era adicionar mais uma condição quando se clica no botão STOP.
    E essa condição é enviar automaticamente um email para endereço de email do anunciante, a informá-lo que o tempo de exposição de banner terminou.

    Assim, o código que tenho é:

    Código:
        elseif ($plan=="member_mo"){
    
    
            //Todo parece correcto procedemos con la inserccion
                $query = "UPDATE tb_banner SET stopped = '$time' WHERE id ='$id'";
            $queryz = "DELETE FROM banners_member WHERE id='$id'";
               mysql_query($query) or die(mysql_error());
            mysql_query($queryz) or die(mysql_error());
        
            echo "<font color=\"red\"><b>Banner request has been stopped.</b></font><br><br>";
    O endereço de email do anunciante está numa tabela criada para o efeito, e o seu endereço está numa linha criada também para o efeito.

    Tentei, fazer o que quero, alterando o código para:
    Código:
        elseif ($plan=="top_ad"){
    
    
            //Todo parece correcto procedemos con la inserccion
                $query = "UPDATE tb_banner SET stopped = '$time' WHERE id ='$id'";
            $queryz = "DELETE FROM topbanners WHERE id='$id'";
               mysql_query($query) or die(mysql_error());
            mysql_query($queryz) or die(mysql_error());
        
        $mail = "Dear xx"
        
                Your banner terminate now.
    
         ";
            $env_mail = mail($linha['pemail'], 'ATTENTION: Your banner ', $mail);
            echo "<font color=\"red\"><b>Banner request has been stopped.</b></font><br><br>";
        }
        
    Só que não dá.

    O que está errado e precisa de ser alterado?
     
    Última edição pelo moderador: 20 de Agosto de 2008
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Define "não dá".
     
  3. jotix

    jotix Power Member

    Não envia o email, após clicar no botão STOP.
     
  4. jotix

    jotix Power Member

    Eu acho que tenho de fazer mais uma query para ir buscar o email do anunciante.

    A tabela onde está esse email é tb_banners e a coluna do email é pemail
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Não tens o SELECT disso antes, no código?
     
  6. jotix

    jotix Power Member

    Não. Podes fazer aquilo um exemplo, de como deveria ficar, por favor.

    É que isto:
    $env_mail = mail($linha['pemail']

    Também deve estar errado, porque não tenho nenhuma variável $linha

    (eu tirei este código de outro exemplo que tinha, e agora tá dificil de adaptar)
     
    Última edição: 20 de Agosto de 2008
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Pois ...
    Código:
    $query = mysql_query("SELECT pemail FROM tb_banners WHERE [I](aqui pões a condição, tipo "id_anunciante = 15")[/I]") or die("Erro no query: " . mysql_error());
    $linha = mysql_fetch_assoc($query);
    
     
  8. jotix

    jotix Power Member

    mas o id do anunciante é conforme, ou seja, é gerado um id por cada anunciante, e cada linha do botão STOP tem um id.

    Então, como é que eu faço para indicar que o id do anunciante é aquele onde estão o botão STO que pretendo clicar.
     
  9. jotix

    jotix Power Member

    Para se comprender melhor, fica aqui esta imagem:

    [​IMG]
     
  10. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Mostra-me o query que faz essa tabela :)
     
  11. jotix

    jotix Power Member

    É isto que queres?

    Desculpa, mas n fui eu k fiz o código.

    <b>Site Banner Status</b>

    PHP:
    <?

    if (isset(
    $_GET["id"]))
    {

    $id=$_GET["id"];
    $option=$_GET["option"];
    $pemail=$_POST["pemail"];
    $plan=$_POST["plan"];
    $url=$_POST["url"];
    $banner=$_POST["banner"];
    $ip=$_POST["ip"];
    $started=$_POST["started"];
    $stopped=$_POST["stopped"];
    $time=gmdate("F j, Y - g:i a");

    e isto:

    PHP:
     $tabla mysql_query("SELECT * FROM tb_banner ORDER BY id ASC"); // selecciono todos los registros de la tabla usuarios, ordenado por nombre

    while ($registro mysql_fetch_array($tabla)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen


    echo "
    <tr>
    <td>"
    $registro["id"] ."</td>
    <td>"
    $registro["pemail"] ."</td>
    <td>"
    $registro["plan"] ."</td>
    <td><a href=\""
    $registro["url"] ."\" target=\"_blank\" onmouseover=\"Tip('"$registro["url"] ."')\">View</a></td>
    <td><a href=\""
    $registro["banner"] ."\" target=\"_blank\" onmouseover=\"Tip('"$registro["banner"] ."')\">View</a></td>
    <td>"
    $registro["ip"] ."</td>
    <td>"
    $registro["started"] ."</td>
    <td>"
    $registro["stopped"] ."</td>
    <td>"
    ;
    ?>
    Isto é a parte html da tabela:

     
    Última edição: 20 de Agosto de 2008
  12. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Isso está tudo muito confuso, mas acho que consegues obter o mail através do $_POST["pemail"]. Experimenta trocar o $linha['pemail'] por isso.
     
  13. jotix

    jotix Power Member

    Então, basta-me colocar $pemail

    Pk a variável $pemail é igual ao post $_POST["pemail"]
     
  14. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Sim, então $pemail deve bastar.
     

Partilhar esta Página