Jump to content
Fórum Script Brasil
  • 0

Query Em Campo Data


adailton

Question

Montei uma tabela em bd para gravação de dados de um form de cadastro. A estrutura segue:

id_user,nome_user,dt_user,end_user,email_user,cid_user,cep_user, estado_user

ate ai tudo bem. Gero o formulario, gravo os dados faço a consultas, sem novidades.

Agora gostaria que de desenvolver um script que faria consulta nesta tabela usando os campos dt_user (data de nascimento) e email_user (e-mail do usuario);

comparace com a data do sistema, e em caso de serem iguais envia uma mensagem para email do usuario.

Pergunta?

- qual o formato de dados que deve ter meu campo dt_user - coloquei varchar

- como faço para a consulta restringer a dia e mes

---- Fiz este script (abaixo) não retorna errom porem não envia, acredito que o erro esteja no formato da data no bd, e na pesquisa

$cone = mysql_connect($host,$user,$passwd);

mysql_select_db($bd,$cone) or die ("erro");

$sql="select nome_user,email_user,dt_user from tb_clientes where dt_user=CURRENT_DATE() order by nome_user";

//$query=mysql_query($sql);

$query=mysql_query($sql,$cone);

while ($linha=mysql_fetch_array($query))

{

$assunto="Parabéns ".$linha[0];

$mensagem="BLA BLA BLA";

mail($linha[1],$assunto,$mensagem,"De: Sua Página");

}

Agradeço a ajuda

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Tenta isso....

<?

$datahoje = gmdate('d/m/Y');#hoje 12/12/2003

$datashoje = explode('/',$datahoje);#separa a data

$dataDM = $datashoje[0].$datashoje[1];#Assim você so vai ter o dia e o mes no caso 1212

/* dai e so você fazer a mesma coisa com os dados da tabela

depois você compara a data de hoje com as datas do seu banco

dai você envia o email.*/

?>

v c você consegue....

Link to comment
Share on other sites

  • 0
Guest - adailton -
Tenta isso....

<?

$datahoje = gmdate('d/m/Y');#hoje 12/12/2003

$datashoje = explode('/',$datahoje);#separa a data

$dataDM = $datashoje[0].$datashoje[1];#Assim você so vai ter o dia e o mes no caso 1212

/* dai e so você fazer a mesma coisa com os dados da tabela

depois você compara a data de hoje com as datas do seu banco

dai você envia o email.*/

?>

v c você consegue....

vou tentar, valeu

Link to comment
Share on other sites

  • 0
Guest - Adailton -
e so mandar..

olha o codigo

<?

$mes = date("m");

$dia = date("d");

switch($mes){

case 01:

$mess = "Janeiro";

break;

case 02:

$mess = "Fevereiro";

break;

case 03:

$mess = "Março";

break;

case 04:

$mess = "Abril";

break;

case 05:

$mess = "Maio";

break;

case 06:

$mess = "Junho";

break;

case 07:

$mess = "Julho";

break;

case 08:

$mess = "Agosto";

break;

case 09:

$mess = "Setembro";

break;

case 10:

$mess = "Outubro";

break;

case 11:

$mess = "Novembro";

break;

case 12:

$mess = "Dezembro";

break;

default:

$mess = "invalido";

break;

}

$conexao = mysql_connect("conexão","user","pass"); // Informacoes do Site

mysql_select_db("db",$conexao); // Nome do Banco de Dados

$sql = mysql_query("SELECT * FROM tabela where mesn_user='".$mes."'");

if(mysql_num_rows($sql) > 0){

while ($rs = mysql_fetch_array($sql)){

$membro = $rs["nome_user"];

$aniver = $rs["dian_user"];

echo "<table width=\"553\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">

<tr class=\"geral\">

<td width=\"40%\" height=\"20\" bgcolor=\"ffcc00\"><strong>&nbsp;Aniversariante:</strong> $membro</td>

<td width=\"35%\" height=\"20\" bgcolor=\"ffcc00\"><strong>&nbsp;Dia:</strong> $aniver</td>

<td width=\"25%\" height=\"20\" bgcolor=\"C5C5C5\"><div align=\"left\"><strong>&nbsp;M&ecirc;s:</strong> $mess</div></td>

</tr>

</table><br>"; // Aqui Pode Ser Mudado

}

}

$soma = mysql_query("SELECT count(dian_user) AS total FROM tb_clientes where dian_user=".$dia."'"); // Mandar Email no Dia

$exp = @mysql_fetch_array($soma);

$total = $exp["total]+0;

echo "$total Membro(s) Faz(em) Aniversario Hoje!<br>";

$sql = mysql_query("SELECT * FROM tb_clientes where dian_user='".$dia."'");

$rs = mysql_fetch_array($sql);

$dias = $rs["dian_user"];

$email = $rs["email_user"];

$membro = $rs["nome_user"];

$codigo = $rs["id_user"];

//$recebido = $rs["recebido"];

$assunto = "$membro , Agente Não Esqueceu!"; // Assunto

$mensagem = "Ola $membro Parabens pelo Seu Aniversario. A Equipe do Site CAPESP Deseja Muitas Felicidades!"; // Mensagem

if($dias == $dia){

//if($recebido == ""){

mail($email,$assunto,$mensagem,"From: LoS DeTi"); // Remetente

//$atualiza = mysql_query("update tb_clientes set recebido='1' where id_user='$codigo'");

}

else{

echo "Desculpe, Mas Não Temos Usuarios Registrados que Fazem Aniversario no Mês de $mess"; // Se Não Tiver Aniversariante no Dia

}

?>

Link to comment
Share on other sites

  • 0
Guest - Adailton -
ta funcionando???

Sim o meu problema é que ele só esta enviando para o 1º registro encontrado.

Ele consulta, da o total de aniversariantes, filtra. Na hora de enviar vai somente para o primeiro. Não consigo localizar o erro.

Se você puder me ajudar.

Agradeço muito

Link to comment
Share on other sites

  • 0

faz o seguinte...

<?

$mes = date("m");

$dia = date("d");

switch($mes){

case 01:

$mess = "Janeiro";

break;

case 02:

$mess = "Fevereiro";

break;

case 03:

$mess = "Março";

break;

case 04:

$mess = "Abril";

break;

case 05:

$mess = "Maio";

break;

case 06:

$mess = "Junho";

break;

case 07:

$mess = "Julho";

break;

case 08:

$mess = "Agosto";

break;

case 09:

$mess = "Setembro";

break;

case 10:

$mess = "Outubro";

break;

case 11:

$mess = "Novembro";

break;

case 12:

$mess = "Dezembro";

break;

default:

$mess = "invalido";

break;

}

$conexao = mysql_connect("conexão","user","pass"); // Informacoes do Site

mysql_select_db("db",$conexao); // Nome do Banco de Dados

$sql = mysql_query("SELECT * FROM tabela where mesn_user='".$mes."'");

if(mysql_num_rows($sql) > 0){

while ($rs = mysql_fetch_array($sql)){

$membro = $rs["nome_user"];

$aniver = $rs["dian_user"];

echo "<table width=\"553\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">

<tr class=\"geral\">

<td width=\"40%\" height=\"20\" bgcolor=\"ffcc00\"><strong>&nbsp;Aniversariante:</strong> $membro</td>

<td width=\"35%\" height=\"20\" bgcolor=\"ffcc00\"><strong>&nbsp;Dia:</strong> $aniver</td>

<td width=\"25%\" height=\"20\" bgcolor=\"C5C5C5\"><div align=\"left\"><strong>&nbsp;M&ecirc;s:</strong> $mess</div></td>

</tr>

</table><br>"; // Aqui Pode Ser Mudado

Manda ele mandar o email aki. a cada usuario ele vai enviar o email

}

}

$soma = mysql_query("SELECT count(dian_user) AS total FROM tb_clientes where dian_user='".$dia."'"); // Mandar Email no Dia

$exp = @mysql_fetch_array($soma);

$total = $exp["total]+0;

echo "$total Membro(s) Faz(em) Aniversario Hoje!<br>";

$sql = mysql_query("SELECT * FROM tb_clientes where dian_user='".$dia."'");

$rs = mysql_fetch_array($sql);

$dias = $rs["dian_user"];

$email = $rs["email_user"];

$membro = $rs["nome_user"];

$codigo = $rs["id_user"];

//$recebido = $rs["recebido"];

$assunto = "$membro , Agente Não Esqueceu!"; // Assunto

$mensagem = "Ola $membro Parabens pelo Seu Aniversario. A Equipe do Site CAPESP Deseja Muitas Felicidades!"; // Mensagem

if($dias == $dia){

//if($recebido == ""){

mail($email,$assunto,$mensagem,"From: LoS DeTi"); // Remetente

//$atualiza = mysql_query("update tb_clientes set recebido='1' where id_user='$codigo'");

}

else{

echo "Desculpe, Mas Não Temos Usuarios Registrados que Fazem Aniversario no Mês de $mess"; // Se Não Tiver Aniversariante no Dia

}

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...