krustypop
Messages postés14Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention27 mars 2009
-
26 mars 2009 à 16:17
krustypop
Messages postés14Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention27 mars 2009
-
27 mars 2009 à 11:58
Bonjour à tous!
voilà j'ai fait un bout de code qui a pour fonction de controler des seuils et de m'envoyer un mail si ces seuils limites sont atteints. Mon problème est le suivant, à chaque rafraichissement de page il m'envoi un mail, or je voudrais qu'il ne m'en envoi qu'un seul. Mon début d'idée est la suivante, je voudrais mettre le contenu de ma requete sql qui me permet d'avoir mes seuils atteints, dans un variable, de la sauvegarder et de comparer à chaque modification si le contenu est le même.
S'il est le même on envoi pas de mail mais s'il est différent la il m'envoi un mail et un seul. Voici mon bout de code pour vous illustrer tout ca :
$reqseuil= mysql_query("SELECT * FROM printers WHERE nbr <= 1;"); // nbr étant la quantitié dispo
$nbrep= mysql_num_rows($reqseuil);
$commandefaite=false;
while($ligne=mysql_fetch_array($reqseuil))
{
$contenu .= $ligne[1].' '.$ligne[2].' '.$ligne[3].' '.$ligne[4].' '.$ligne[5].' '.$ligne[6].' '.$ligne[7]."\n";
}
echo $contenu;
////////////
c'est icic que je bug !
//////////
if(($nbrep==4)&&($strcompar<>0)
{
ini_set("SMTP","smtp.monsmtp.fr");
ini_set("sendmail_from","adresse@destintaire.com");
$to = 'mon.adresse.mail@domaine.com';
$subject = 'A Commander';
$msg = "Voici les consommables à commander :\r\n".$contenu1;
mail($to, $subject, $msg);
$commandefaire=true;
echo 'ENVOI OK' ;
}
Voila si quelqu un pourrai m'aider svp ca serait super gentil !!MERCI d'AVANCE
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 27 mars 2009 à 08:12
Salut Krustypop,
Comment est définie $strcompar ?
En supposant que chaque ligne de printers est un consommable d'imprimante, pourquoi attends tu qu'il y ait 4 produits en rupture ?
Pourquoi ne fais tu pas plutôt comme ça :
Tu ajoutes un champ "alert" dans ta table printers :
1 => un email à déjà été envoyé
0 => pas d'email déjà envoyé
Puis dans ton script :
$up = mysql_query("UPDATE printers SET alert=0 WHERE nbr > 1");
$reqseuil = mysql_query("SELECT * FROM printers WHERE nbr <= 1 AND alert=0"); // nbr étant la quantitié dispo
il y a des résultats
=> envoi mail
=> update : alert=1 pour la ligne en cours
krustypop
Messages postés14Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention27 mars 2009 27 mars 2009 à 10:27
Ah et pour le 4 en fait, c'est simplement pour faire une commande regroupé des consommables,car on ne fait pas de commande pour 1 seul conso qui viendrait à manquer.
krustypop
Messages postés14Date d'inscriptionjeudi 18 septembre 2008StatutMembreDernière intervention27 mars 2009 27 mars 2009 à 11:58
Alors j'ai avancé un peu, mais la je bloque sur l'update pour alert=1 de l'élément courant.
J'ai pensé faire un foreach mais au niveau de la syntaxe, je ne vois pas trop comment faire. Ou peut y a-t-il une solution plus simple à implémenter dans mon code qui est devenu celui-ci:
$upalert = mysql_query("UPDATE printers SET alert=0 WHERE nbr > 1");
$reqseuil= mysql_query("SELECT * FROM printers WHERE nbr <= 1 AND alert=0;");
$nbrep= mysql_num_rows($reqseuil);
$contenu="";
if($nbrep==4)
{
ini_set("SMTP","smtp.monstmp.fr");
ini_set("sendmail_from","uneadressemail@domaine.com");
$to = 'monadressemail@domaine.com';
$subject = 'A Commander';
$msg = "*********************************************************************************\r\n";
$msg.= "Voici les consommables a commander :\r\n";
$msg.= "*********************************************************************************\r\n\n";
$msg.= $contenu;
mail($to, $subject, $msg);
//Peut etre ici un foreach
// puis ici un update mettant alert=1 pour l'élément courant
echo '<script type="text/javascript">alert("La limite a été atteinte, un mail avec les références à commander a été envoyé!");</script>';
}
Voila si tu as une solution kohntark, ou quelqu un d'autres, je suis preneur! Merci d'avance