par
Al PiGiNo » 30 mai 2011, 11:14
Bonjour,
je vois déjà des gens crier au scandale, mais je vous rassure, je n'ai pas le choix.
Voici ma situation : des personnes passe des commandes sur mon site et ces données se stockent dans une table histo_reassort.
Un personne peut passer commande pour plusieurs produits et une personne est lié à un seul dépôt. Le dépôt, quant à lui, peut avoir plusieurs clients (j'espère que vous suivez

)
Je met en place un mailing automatique tout les 3 jours via une page PHP, du résumé des commandes des clients à chaque dépots.
Voici mon code :
<?php
if (isset($_POST['mail'])) {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////Requete récupérant les données à envoyer////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$query= ' SELECT *
FROM `histo_reassort` h, `produit` p, `diffuseur` d, `validation_diffuseur` v
WHERE h.`nim`= d.`dif_nim`
AND h.`produit_id`=p.`produit_id`
AND TRIM(p.`produit_mev`)="1"
AND TRIM(v.`nim`)=TRIM(d.`dif_nim`)
AND `valide`!="2"
ORDER BY `nim_depot`';
$req=mysql_query($query) or die (mysql_error());
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////Requete remplissant la premiere donnée du tableau///////////////////////////
////////////////////////////////////////(pour éviter certaines erreur)/////////////////////////////////////
$premier_nim_depot=mysql_result ($req, 0, nim_depot) or die (mysql_error());
$tab=array();
$tab[0]=$premier_nim_depot;
$i=1;
mysql_data_seek($req, 0);
$txt = 'Bonjour,
Vous trouverez ci-dessous les demandes d\'implantations ou de réassorts de vos diffuseurs saisies sur notre site internet.
Nous vous remercions de prendre en compte ces demandes (ces produits sont disponibles au magasin central réassort si nécessaire)
';
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////On lance la boucle pour le mail/////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
while ($result=mysql_fetch_assoc($req)) {
$tab[$i]=$result['nim_depot'];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////Si le nim est différent du nim précendent////////////////////////////////////
///////////////////////////////////////on envoie le mail////////////////////////////////////////////////////////
if($tab[$i-1]!=$result['nim_depot']||$i==$count) {
$query_date='SELECT CURDATE()';
$req=mysql_query($query_date);
$date=mysql_result($req, 0);
$mail = 'mail';
$sujet ='Important : demande de réassorts ou implantations sur produit xxxx du '.$date.'';
$from = 'xxxxxx';
$from_mail = 'mail';
$headers = "From: \"$from\"<$from_mail> ";
mail($mail, $sujet, $txt, $headers);
$txt = 'Bonjour,
Vous trouverez ci-dessous les réassorts de vos diffuseurs saisies sur notre site internet.
Nous vous remercions de prendre en compte ces demandes (ces produits sont disponibles au magasin central réassort si nécessaire)
';
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////On remplit le mail avec les différentes données//////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (trim($result['produit_presentoir'])==1) {
$txt .= 'Nil : '.$result['dif_nil'].'
Nom : '.$result['dif_nom'].'
Nim : '.$result['dif_nim'].'
Produit : '.$result['produit_libelle'].'
Produit en présentoir : Oui
Produit par présentoir : '.$result['produit_conditionnement'].'
Nbre de présentoir commandé : '.$result['qte_reassort']/$result['produit_conditionnement'].' soit '.$result['qte_reassort'].' exemplaires
';
}
else {
$txt .= 'Nil : '.$result['dif_nil'].'
Nom : '.$result['dif_nom'].'
Nim : '.$result['dif_nim'].'
Produit : '.$result['produit_libelle'].'
Produit en présentoir : Non$
Nbre de produit commandé : '.$result['qte_reassort'].'
';
}
$i=$i+1;
}
} ?>
Le problème est que cela ne m’envoie qu'un mail, et que l'echo du $i s’arrête à 14 alors que il y a 17 lignes dans la table. (le mysql_num-rows($req) vaut 17)
Donc voilà, je suis hébergé chez OVH, est-ce que ce serait eux qui bloquerait le mail dans une boucle ou est-ce une erreur de ma part ?
Merci d'avance
Bonjour,
je vois déjà des gens crier au scandale, mais je vous rassure, je n'ai pas le choix.
Voici ma situation : des personnes passe des commandes sur mon site et ces données se stockent dans une table histo_reassort.
Un personne peut passer commande pour plusieurs produits et une personne est lié à un seul dépôt. Le dépôt, quant à lui, peut avoir plusieurs clients (j'espère que vous suivez :P )
Je met en place un mailing automatique tout les 3 jours via une page PHP, du résumé des commandes des clients à chaque dépots.
Voici mon code :
[php]
<?php
if (isset($_POST['mail'])) {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////Requete récupérant les données à envoyer////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$query= ' SELECT *
FROM `histo_reassort` h, `produit` p, `diffuseur` d, `validation_diffuseur` v
WHERE h.`nim`= d.`dif_nim`
AND h.`produit_id`=p.`produit_id`
AND TRIM(p.`produit_mev`)="1"
AND TRIM(v.`nim`)=TRIM(d.`dif_nim`)
AND `valide`!="2"
ORDER BY `nim_depot`';
$req=mysql_query($query) or die (mysql_error());
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////Requete remplissant la premiere donnée du tableau///////////////////////////
////////////////////////////////////////(pour éviter certaines erreur)/////////////////////////////////////
$premier_nim_depot=mysql_result ($req, 0, nim_depot) or die (mysql_error());
$tab=array();
$tab[0]=$premier_nim_depot;
$i=1;
mysql_data_seek($req, 0);
$txt = 'Bonjour,
Vous trouverez ci-dessous les demandes d\'implantations ou de réassorts de vos diffuseurs saisies sur notre site internet.
Nous vous remercions de prendre en compte ces demandes (ces produits sont disponibles au magasin central réassort si nécessaire)
';
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////On lance la boucle pour le mail/////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
while ($result=mysql_fetch_assoc($req)) {
$tab[$i]=$result['nim_depot'];
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////Si le nim est différent du nim précendent////////////////////////////////////
///////////////////////////////////////on envoie le mail////////////////////////////////////////////////////////
if($tab[$i-1]!=$result['nim_depot']||$i==$count) {
$query_date='SELECT CURDATE()';
$req=mysql_query($query_date);
$date=mysql_result($req, 0);
$mail = 'mail';
$sujet ='Important : demande de réassorts ou implantations sur produit xxxx du '.$date.'';
$from = 'xxxxxx';
$from_mail = 'mail';
$headers = "From: \"$from\"<$from_mail> ";
mail($mail, $sujet, $txt, $headers);
$txt = 'Bonjour,
Vous trouverez ci-dessous les réassorts de vos diffuseurs saisies sur notre site internet.
Nous vous remercions de prendre en compte ces demandes (ces produits sont disponibles au magasin central réassort si nécessaire)
';
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////On remplit le mail avec les différentes données//////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (trim($result['produit_presentoir'])==1) {
$txt .= 'Nil : '.$result['dif_nil'].'
Nom : '.$result['dif_nom'].'
Nim : '.$result['dif_nim'].'
Produit : '.$result['produit_libelle'].'
Produit en présentoir : Oui
Produit par présentoir : '.$result['produit_conditionnement'].'
Nbre de présentoir commandé : '.$result['qte_reassort']/$result['produit_conditionnement'].' soit '.$result['qte_reassort'].' exemplaires
';
}
else {
$txt .= 'Nil : '.$result['dif_nil'].'
Nom : '.$result['dif_nom'].'
Nim : '.$result['dif_nim'].'
Produit : '.$result['produit_libelle'].'
Produit en présentoir : Non$
Nbre de produit commandé : '.$result['qte_reassort'].'
';
}
$i=$i+1;
}
} ?>[/php]
Le problème est que cela ne m’envoie qu'un mail, et que l'echo du $i s’arrête à 14 alors que il y a 17 lignes dans la table. (le mysql_num-rows($req) vaut 17)
Donc voilà, je suis hébergé chez OVH, est-ce que ce serait eux qui bloquerait le mail dans une boucle ou est-ce une erreur de ma part ?
Merci d'avance