Discussion:
test si requete vide
(trop ancien pour répondre)
Daniel.j
2009-07-29 06:52:41 UTC
Permalink
Bonjour
Pouvez vous m'aider ?, mes connaissances en cette matiere sont limitées !!!
Je fais une requete sur une table d'une base de donnees Mysql .
Mais comment faire ce test?
($courriel vient d'un formulaire ou l'utilisateur peut taper n'importe quel
email.)
Si $courriel n'est pas trouvé dans la table alors ne pas envoyer l'email et
afficher "echo 'l\'email n\'a pas pu être envoyé !';"
car avec le code ci dessous le test ne se fait pas (normal me direz-vous !)
et "echo 'Message envoyé';" est toujours affiché.

Merci pour toutes vos reponses qui pourront m'eclairer !!!
Daniel
=========
$reponse = mysql_query("SELECT * FROM matable WHERE mail='$courriel'");
while ($donnees = mysql_fetch_array($reponse) )
$message = "Bonjour, $nom\n";
$message .= "Vous avez demandé ....: \n\n";
$message .= "Cordialement \n\n";
$result = mail($courriel, $subject, $message,"From:***@xxx.fr");
if( $result == true )
{
echo 'Message envoyé';
echo '<p><a href=http://www.xxxr.fr/>Retour Accueil</a></p>';
}
else
{
echo 'l\'email n\'a pas pu être envoyé !';
}
CrazyCat
2009-07-29 07:17:31 UTC
Permalink
Bonjour,
Post by Daniel.j
Je fais une requete sur une table d'une base de donnees Mysql .
Mais comment faire ce test?
$reponse = mysql_query("SELECT * FROM matable WHERE mail='$courriel'");
Déjà, cette requète n'est pas propre car après tu devras vérifier si
elle renvoit bien un enregistrement. Je ferais plutôt:
$reponse = mysql_query("SELECT COUNT(*) AS nb FROM matable WHERE
mail='".$courriel."'");
Cette requète te renverra forcément un résultat qui est le nombre
d'enregistrements qui correspondent, donc 0 ou n.

Ensuite, tu n'as plus qu'à faire:
$donnees = mysql_fetch_assoc($reponse);
if (intval($donnees['nb'])>0) {
// envoi du message
} else {
// Pas de concordance
}
--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Daniel.j
2009-07-29 16:07:40 UTC
Permalink
Bonsoir,
Merci beaucoup CrazyCat !!!
C'est parfait :o)
Daniel

FAQ MPFE Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
Post by Daniel.j
Bonjour,
Post by Daniel.j
Je fais une requete sur une table d'une base de donnees Mysql .
Mais comment faire ce test?
$reponse = mysql_query("SELECT * FROM matable WHERE mail='$courriel'");
Déjà, cette requète n'est pas propre car après tu devras vérifier si elle
$reponse = mysql_query("SELECT COUNT(*) AS nb FROM matable WHERE
mail='".$courriel."'");
Cette requète te renverra forcément un résultat qui est le nombre
d'enregistrements qui correspondent, donc 0 ou n.
$donnees = mysql_fetch_assoc($reponse);
if (intval($donnees['nb'])>0) {
// envoi du message
} else {
// Pas de concordance
}
--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces : http://www.g33k-zone.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Jean-Francois Ortolo
2009-07-29 17:14:43 UTC
Permalink
Facile

Après le $res = mysql_query($sql, $conn); tu peux voir le nombre
rendu par la fonction mysql_num_rows($res);

Bien à vous.

Amicalement.

Jean-François Ortolo
--
Visitez le site http://www.pronostics-courses.fr/
qui donne des Statistiques, Pronostics et Historiques graphiques.

Les Statistiques sont calculées d'après une base de données
allant du 1/01/2000 jusqu'à très récemment.
Bruno Desthuilliers
2009-07-29 17:14:44 UTC
Permalink
Post by Daniel.j
Bonjour
Pouvez vous m'aider ?, mes connaissances en cette matiere sont limitées !!!
Je fais une requete sur une table d'une base de donnees Mysql .
Mais comment faire ce test?
($courriel vient d'un formulaire ou l'utilisateur peut taper n'importe quel
email.)
Attention aux attaques (injections SQL et autres)...
Post by Daniel.j
Si $courriel n'est pas trouvé dans la table alors ne pas envoyer l'email et
afficher "echo 'l\'email n\'a pas pu être envoyé !';"
car avec le code ci dessous le test ne se fait pas (normal me direz-vous !)
et "echo 'Message envoyé';" est toujours affiché.
Merci pour toutes vos reponses qui pourront m'eclairer !!!
mysql_num_rows() est ton amie.
Daniel.j
2009-07-29 22:04:24 UTC
Permalink
merci à vous !
Daniel
Post by Bruno Desthuilliers
Post by Daniel.j
Bonjour
Pouvez vous m'aider ?, mes connaissances en cette matiere sont limitées !!!
Je fais une requete sur une table d'une base de donnees Mysql .
Mais comment faire ce test?
($courriel vient d'un formulaire ou l'utilisateur peut taper n'importe
quel email.)
Attention aux attaques (injections SQL et autres)...
Post by Daniel.j
Si $courriel n'est pas trouvé dans la table alors ne pas envoyer l'email
et afficher "echo 'l\'email n\'a pas pu être envoyé !';"
car avec le code ci dessous le test ne se fait pas (normal me direz-vous
!) et "echo 'Message envoyé';" est toujours affiché.
Merci pour toutes vos reponses qui pourront m'eclairer !!!
mysql_num_rows() est ton amie.
Continuer la lecture sur narkive:
Loading...