[php] if et else ne font pas trop leurs boulo
Résolu/Fermé
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
-
16 juin 2006 à 17:58
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 17 juin 2006 à 12:07
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 17 juin 2006 à 12:07
11 réponses
smellems
Messages postés
135
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
4 mai 2012
46
16 juin 2006 à 18:20
16 juin 2006 à 18:20
Salut,
le problème c'est que la requète DELETE de mysql fonctionne toujours même si le WHERE n'est pas =. sauf que 0 row sont affecté.
essais comme ça:
if ($results and mysql_num_rows($results))
{
...
}
bonne chance
le problème c'est que la requète DELETE de mysql fonctionne toujours même si le WHERE n'est pas =. sauf que 0 row sont affecté.
essais comme ça:
if ($results and mysql_num_rows($results))
{
...
}
bonne chance
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
16 juin 2006 à 18:50
16 juin 2006 à 18:50
en changeant le if($result... j'obtiens warning mysql_num_rows...
code :
code :
<? $email=$_POST['email'];?> <? $dbc = @mysql_connect ("localhost", "zone_zone", "****"); if(!mysql_errno($dbc)) { mysql_select_db("zone_bdd"); $query = "DELETE FROM infos WHERE email='$email'"; $result = mysql_query($query); if($result and mysql_num_rows($result)) { echo "Merci, votre adresse e-mail a été supprimé de la base de donnée, vous ne recevrez plus d'informations du site"; } else { echo "Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne"; }} mysql_close(); ?>
smellems
Messages postés
135
Date d'inscription
vendredi 28 avril 2006
Statut
Membre
Dernière intervention
4 mai 2012
46
16 juin 2006 à 19:31
16 juin 2006 à 19:31
Salut,
"warning mysql_num_rows... " ??? quoi?
est-ce que l'erreur dit que ton $result n'est pas valide?
si je ne sais pas c'est quoi l'erreur c'est difficile de comprendre...
mais ton code semble bon...
"warning mysql_num_rows... " ??? quoi?
est-ce que l'erreur dit que ton $result n'est pas valide?
si je ne sais pas c'est quoi l'erreur c'est difficile de comprendre...
mais ton code semble bon...
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
16 juin 2006 à 22:41
16 juin 2006 à 22:41
Re
j'ai le message suivant que l'e-mail existe ou pas dans la bdd :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/zone/domains/zone-mobile.net/public_html/suprime_email.php on line 9
Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne
d'où cela vient-il?
merci
j'ai le message suivant que l'e-mail existe ou pas dans la bdd :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/zone/domains/zone-mobile.net/public_html/suprime_email.php on line 9
Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne
d'où cela vient-il?
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
16 juin 2006 à 23:39
16 juin 2006 à 23:39
Salur,
Dans le cas d'un update, delete, ... il faut utiliser mysql_affected_rows().
Un delete si il efface aucune ligne, ne provoquera pas d'erreur.
Un lien vers la doc en français :http://fr3.php.net/manual/fr/function.mysql-affected-rows.php
A+, crabs
Dans le cas d'un update, delete, ... il faut utiliser mysql_affected_rows().
Un delete si il efface aucune ligne, ne provoquera pas d'erreur.
Un lien vers la doc en français :http://fr3.php.net/manual/fr/function.mysql-affected-rows.php
A+, crabs
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
17 juin 2006 à 07:40
17 juin 2006 à 07:40
salut
c'est toujours presque ole même message d'erreur :
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /home/zone/domains/zone-mobile.net/public_html/suprime_email.php
on line 9
Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne
voici le code :
y a un truc qui me gène est-ce qu'on est obliger de mettre if($result and...? parce que if(mysql_... ne sufirait pas?
Puis pour cette erreur là je my perd...
c'est toujours presque ole même message d'erreur :
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /home/zone/domains/zone-mobile.net/public_html/suprime_email.php
on line 9
Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne
voici le code :
<? $email=$_POST['email'];?> <? $dbc = @mysql_connect ("localhost", "zone_zone", "*****"); if(!mysql_errno($dbc)) { mysql_select_db("zone_bdd"); $query = "DELETE FROM infos WHERE email='$email'"; $result = mysql_query($query); if($result and mysql_affected_rows($result)) { echo "Merci, votre adresse e-mail a été supprimé de la base de donnée, vous ne recevrez plus d'informations du site"; } else { echo "Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne"; }} mysql_close(); ?>
y a un truc qui me gène est-ce qu'on est obliger de mettre if($result and...? parce que if(mysql_... ne sufirait pas?
Puis pour cette erreur là je my perd...
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
17 juin 2006 à 09:15
17 juin 2006 à 09:15
Salut,
Regardes bien la doc de msql_affected_rows(). On ne passe le resultat du
mysql_query() mais l'indetifiant de la connection retoruné par mysq_connect().
Cet identifiant est facultatif si tu n'a qu'une connexion ouverte.
Sinon si tu veux un site agréable pour les surfeurs, il faut inévitablement
que tout les cas d'erreur soit traités. Le serveur mysql de ton hébergeur peut
avoir de soucis, donc il faudra prévenir que l'action n'est pas ok.
A+, crabs
Regardes bien la doc de msql_affected_rows(). On ne passe le resultat du
mysql_query() mais l'indetifiant de la connection retoruné par mysq_connect().
Cet identifiant est facultatif si tu n'a qu'une connexion ouverte.
Sinon si tu veux un site agréable pour les surfeurs, il faut inévitablement
que tout les cas d'erreur soit traités. Le serveur mysql de ton hébergeur peut
avoir de soucis, donc il faudra prévenir que l'action n'est pas ok.
A+, crabs
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
17 juin 2006 à 09:19
17 juin 2006 à 09:19
donc dans mon cas, mon code est le bon mais cela viendrai de php installer sur le serveur de mon hébergeur?
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
17 juin 2006 à 11:39
17 juin 2006 à 11:39
Salut,
Perso, j'écrirai un truc du genre
A+, crabs
Perso, j'écrirai un truc du genre
$result = mysql_query($query); if ( ( $result == true ) && ( mysql_affected_rows() > 0 ) ) { echo "Merci, votre adresse e-mail a été supprimé de la base de donnée, vous ne recevrez plus d'informations du site"; } else { echo "Désolé, mais votre adresse e-mail n'a pas été supprimée. Vérifiez que vous avez bien entré la bonne"; }
A+, crabs
fabrice11901
Messages postés
787
Date d'inscription
dimanche 31 juillet 2005
Statut
Membre
Dernière intervention
12 juillet 2007
64
17 juin 2006 à 11:49
17 juin 2006 à 11:49
re
merci c'est bon ça marche !
mais ça aurait quand même du fonctionner avec l'autre code non?
merci c'est bon ça marche !
mais ça aurait quand même du fonctionner avec l'autre code non?
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
506
17 juin 2006 à 12:07
17 juin 2006 à 12:07
Salut,
Dans tous les cas, dans ton code, mysql_affected_rows($result) ne peut
pas fonctionner car $result n'est pas un identifiant de connexion mais le
résultat d'une requête.
A+, crabs
Dans tous les cas, dans ton code, mysql_affected_rows($result) ne peut
pas fonctionner car $result n'est pas un identifiant de connexion mais le
résultat d'une requête.
A+, crabs