arldin 1 Denunciar post Postado Abril 12, 2015 Boa noite a todos eu estou usando um script para enviar email para os usuarios do site ele envia os email corretamente, mais eu queria que ele só envia-se para os usuarios que estão com o pagamento em atraso este e o script <?php $minha_conexion=mysql_connect('localhost','xxxxxx','xxxxx') or die('Não se pode conectar com o banco de dados!'); mysql_select_db('meu banco de dados'); $query_Tabela = "SELECT user_email FROM se_users"; $data=date("d-m-Y"); $data > $data_pg; $Tabela = mysql_query($query_Tabela) or die(mysql_error()); $osemails=""; while ($row_Tabela=mysql_fetch_assoc($Tabela)) { $osemails.=($row_Tabela['user_email'].", "); } $largo=strlen($osemails); if ($largo>2) { $osemails=substr($osemails,0,$largo-2); } else { echo "Não há destinatários!"; die(); }; $assunto='Regularize seu pagamento'; $mensagem='<html> <head> <title>Titulo da Pagina</title> </head> <body> <p>Regularize seu pagamento</p> Acesse o abaixo link para regularizar seu pagamento: <table> <tr> <td>http://meu site/pagamento.php</td> </tr> </table> </body> </html>'; $envia='admin'; $remete='admin@xxxxxx.com.br'; mail(null, $assunto, $mensagem, "MIME-Versao: 1.0 Content-type: text/html; charset=iso-8859-1 From: $envia <$remete> Bcc: $osemails" . "\r\n") or die("Erro ao Enviar o Email"); echo "Mensagem Enviado com Sucesso!"; // mysql_free_result($Tabela); ?> Como posso resolver isto Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 12, 2015 Você precisa mudar o seu select: $query_Tabela = "SELECT user_email FROM se_users"; Você precisa adicionar uma cláusula WHERE, filtrando os usuários com pagamento pendente. Poderá usar as funções de data/hora do mysql para efetuar os cálculos ou a class DateTime do PHP, por exemplo. PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Abril 12, 2015 Já tinha feito isto mais ele retorna dizendo que não existe destinatario sendo quu existe usuario em atraso Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 12, 2015 mostre como fez essa verificação. deve haver algo errado Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Abril 12, 2015 tente pelo id assim $query_Tabela = "SELECT user_email FROM se_users WHERE id = '$id'"; depois pela data_pg assim $query_Tabela = "SELECT user_email FROM se_users WHERE data_pg = '$data_pg'"; e ambos retornaram dizem que não existe destinatario Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 12, 2015 o filtro pelo ID não tem lógica. Você teria que buscar os IDs dos usuários inadimplentes para, depois, fazer outro select com os demais dados. Qual é o valor de $data_pg? Note que você usou o operador igual. Se você quer procurar por usuários cuja data de expiração é inferior que a data atual, deve usar o operador menor que. Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Abril 12, 2015 Sim os operadores são iguais como faço para buscar os iDS dos inadiplentes Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 12, 2015 Sim os operadores são iguais Você não entendeu. Veja de novo o que escrevi: Note que você usou o operador igual. Se você quer procurar por usuários cuja data de expiração é inferior que a data atual, deve usar o operador menor que. Na sua SQL tem data_pg = '$data_pg'". Esse operador igual não faz sentido. Você tem que buscar por data de expiração menor que a data corrente. Por exemplo SELECT campos FROM tabela WHERE data_expiracao < NOW(); Compartilhar este post Link para o post Compartilhar em outros sites
arldin 1 Denunciar post Postado Abril 12, 2015 Descupe-me pela minha falta de atenção segui a sua sugestão coloquei assim $query_Tabela = "SELECT user_email FROM se_users WHERE data_pg < NOW();"; e resolveu agora só envia para quem esta em atraso Compartilhar este post Link para o post Compartilhar em outros sites