Ir para conteúdo





Banco de Dados + Programa de Mala direta


  • Por favor, faça o login para responder
6 respostas neste tópico

#1 Boadicea

Boadicea
  • Membros
  • 43 posts

Postado 10 October 2006 - 07:27 PM

Olá pessoal, sou nova no fórum e gostaria de ter algumas informações de quem puder me auxiliar...

Gostaria de saber como eu iria fazer um sistema de cadastro (em PHP + MySql) que tivesse ligação com um programa que pegasse as informações dos clientes cadastrados e baseando-se em suas datas de aniversário enviasse automaticamente malas diretas com promoções e etc....alguem poderia me ajudar? Que linguagens eu teria que usar para fazer isso funcionar?

#2 Alex Gotardi

Alex Gotardi
  • Membros
  • 350 posts

Postado 11 October 2006 - 11:51 AM

QUOTE(Boadicea @ Oct 10 2006, 07:27 PM) Visualizar Post

Olá pessoal, sou nova no fórum e gostaria de ter algumas informações de quem puder me auxiliar...

Gostaria de saber como eu iria fazer um sistema de cadastro (em PHP + MySql) que tivesse ligação com um programa que pegasse as informações dos clientes cadastrados e baseando-se em suas datas de aniversário enviasse automaticamente malas diretas com promoções e etc....alguem poderia me ajudar? Que linguagens eu teria que usar para fazer isso funcionar?



bom, você pode usar o proprio PHP + MYSQL, alias, pode fazer tudo junto.

A idéia seria a seguinte, vc desenvolve um cadastro.. (sabe fazer?)

depois um arquivo a parte, digamos, envia_maladireta.php

CÓDIGO

<?
//conecta ao seu banco de dados, coloque o codigo abaixo

//abaixo executamos uma query que irá retornar, NOME, EMAIL, ANIVERSARIO, IDADE da tabela CLIENTES

$sql = mysql_query("
SELECT nome, email, aniversario,
(YEAR(CURDATE())-YEAR(aniversario)) - (RIGHT(CURDATE(),5)<RIGHT(aniversario,5))
AS idade
FROM clientes
WHERE (DAY(aniversario) = DAY(CURDATE()) AND (MONTH(aniversario) = MONTH(CURDATE())");
$row = mysql_num_rows($sql);

//Após isso, vamos ver se retornou alguma coisa
if($row) {

$nome = mysql_result($sql, $i, "nome");
$email = mysql_result($sql, $i, "email");
$nascimento = mysql_result($sql, $i, "nascimento");

//abaixo vc monta sua mensagem. Pode também pegar de um arquivo HTML usando o file_get_contents()
$mensagem = "$nome, parabéns pelo seus $idade anos. Aproveite nossas promoções com desconto especial para você. Somente hoje!";
  
        //se sim, entao vamos enviar os emails para os destinatarios
        for($i=0; $i<$row; $i++) {
             @mail($email, "Assunto do email",$mensagem,"From: Seu site <seuemail@provedor.com.br>");
        }
}
?>


Para que ele execute sozinho, vc precisa acrescentar uma chamada no agendador de tarefas se for windows
Windows fica assim
QUOTE

C:\php\php.exe C:\seu_site\envia_maladireta.php


No Linux
tem q usar o Cron

Té +

Editado por Alex Gotardi, 11 October 2006 - 11:55 AM.


#3 Flaugger

Flaugger
  • Membros
  • 451 posts

Postado 11 October 2006 - 11:51 PM

E ae Alex, blz ?
Aproveitando a oportunidade que você ajudou o cara; eu me deparei com uma coisa que não conhecia:
(YEAR(CURDATE())-YEAR(aniversario)) - (RIGHT(CURDATE(),5)<RIGHT(aniversario,5))
Poderia me explicar melhor sobre isso ?

Valeu !

#4 PoisonHeart

PoisonHeart
  • Membros
  • 89 posts

Postado 12 October 2006 - 10:46 PM

Realmente, também não conhecia...

Ficaria Grato Alex, se você nos explicasse
"melhor". =)

#5 Alex Gotardi

Alex Gotardi
  • Membros
  • 350 posts

Postado 13 October 2006 - 09:52 AM

QUOTE(Flaugger @ Oct 11 2006, 11:51 PM) Visualizar Post

E ae Alex, blz ?
Aproveitando a oportunidade que você ajudou o cara; eu me deparei com uma coisa que não conhecia:
(YEAR(CURDATE())-YEAR(aniversario)) - (RIGHT(CURDATE(),5)<RIGHT(aniversario,5))
Poderia me explicar melhor sobre isso ?

Valeu !



Opa... e ai pessoal blz?

o comando é simples, na verdade nem é PHP é query avançada. (nem tao avançada assim)

vamos desossar o gado então.

(YEAR(CURDATE())-YEAR(aniversario)) - (RIGHT(CURDATE(),5)<RIGHT(aniversario,5))

A expressao foi dividida em 2 partes, a primeira é responsavel por determinar
a diferença de anos entre duas datas padrao YYYY-MM-DD

enquanto a parte 2 é responsavel por capturar da direita (RIGHT) para a esquerda os 5 caracteres da data.

ou seja, tomemos por exemplo uma data assim. 1980-06-06 se aplicarmos RIGHT(data,5) ele retornará 0 se for falso e 1 se for verdadeiro (equivale ao if)

ou seja,

no caso de uma pessoa que nasceu em 1980-06-06 (eu no caso wink.gif )

se aplicar a formula acima, retornaria

2006-1980 - 0 = 26 (anos)

zero pq ele viu que a data de hoje NAO é menor que 06-06

no mesmo exemplo, uma pessoa que nasceu dia 02 de dezembro (02/12)

2006-1980 - 1 = 25 (anos)

1 por que a o mes e o dia atual É menor do que 2 de dezembro.

entao a pessoa ainda vai fazer 26 anos..


lembrando que todas as datas no mysql assumem Ano-mes-dia

Abraços a vcs. biggrin.gif

#6 PoisonHeart

PoisonHeart
  • Membros
  • 89 posts

Postado 13 October 2006 - 11:38 AM

Nossa, valeu mesmo Alex. ^^

#7 Boadicea

Boadicea
  • Membros
  • 43 posts

Postado 14 October 2006 - 05:11 PM

Vou tentar desenrolar aqui e se der certo eu posto

Obrigada hem cool.gif




0 usuário(s) está(ão) lendo este tópico

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)