test si requete vide

Le
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.)
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";
$message .= "Vous avez demandé .: ";
$message .= "Cordialement ";
$result = mail($courriel, $subject, $message,"From:info@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é !';
}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CrazyCat
Le #19846511
Bonjour,

Daniel.j wrote:
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
Le #19849491
Bonsoir,
Merci beaucoup CrazyCat !!!
C'est parfait :o)
Daniel

FAQ MPFE Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm

"CrazyCat" h4os8d$d1b$
Bonjour,

Daniel.j wrote:
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


Jean-Francois Ortolo
Le #19849701
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
Le #19849691
Daniel.j a écrit :
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)...

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
Le #19851221
merci à vous !
Daniel

"Bruno Desthuilliers" dans le message de news: 4a702e90$0$24698$
Daniel.j a écrit :
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)...

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.


Publicité
Poster une réponse
Anonyme