cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 2 janv. 2005 à 17:53
Salut,
si tu entends "retourne un résultat" par "retourne au moins une ligne", voici ce que tu peux faire :
<?php
//connexion base avant
//requete
$requete=mysql_query($requete) OR die('erreur mysql');
if(mysql_num_row($requete)==0)
{
//aucune ligne retournée
}
else
{
//des résultats ont été retournés
}
?>
cs_Waldo2188
Messages postés142Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention20 mai 2008 2 janv. 2005 à 18:04
merci pour vos réponse
mais en faite je cherche à ce que ce message n'apparesse plus.
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\1.application\easyphp1-7\www\tpgbien\admin\bureau.php on line 45"
Car en faite si la requête ne retourne rien dans mon cas c'est bon, par contre si elle retourne un enregistrement la je doit afficher un message d'érreur.
A++
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 2 janv. 2005 à 18:38
D'ailleurs je ne te laisse même pas de bénéfice du doute vu qu'il a une erreur avec un mysql_fetch_array, et qu'on ne fait pas de fetch après un UPDATE ou DELETE.
Bref je réitère mon conseil :
Ne pas dire n'importe quoi pour gratter deux points...
cs_Waldo2188
Messages postés142Date d'inscriptionjeudi 12 février 2004StatutMembreDernière intervention20 mai 2008 2 janv. 2005 à 18:39
Pour ma part j'ai pris ta solution Anthomicro, car elle fonctionne (a vrais dire j'ai pas cherché plus loint) Mais kand ca marche pourquoi se casser la tête.
Je e remerci d'ailleur!
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 2 janv. 2005 à 18:54
D'après la doc de PHP :
mysql_num_rows() retourne le nombre de lignes du résultat result. Cette commande n'est valide que pour les commandes SELECT . Pour connaître le nombre de lignes retournées par INSERT, UPDATE ou DELETE, utilisez mysql_affected_rows().
C'est vrai que pour SELECT il faut prendre le mysql_num_rows mais pour un INSERT par exemple, ce sera mysql_fetch_affected_rows
Pour le mysql_fetch_assoc, tous les modérateurs de phpscripts-fr.net m'ont conseillé de le préférer face à mysql_fetch_array. Je ne sais plus pour quelle raison exactement mais il y en a une.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 2 janv. 2005 à 18:59
"mysql_num_rows() retourne le nombre de lignes du résultat result. Cette commande n'est valide que pour les commandes SELECT . Pour connaître le nombre de lignes retournées par INSERT, UPDATE ou DELETE, utilisez mysql_affected_rows()."
Je ne conteste pas la doc, si t'avais lu plus haut la ligne :
"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\1.application\easyphp1-7\www\tpgbien\admin\bureau.php on line 45"
t'aurais vu que le affected n'est pas à sa place ici
ensuite tu me dis qu'il faut mettre mysql_fetch_assoc au lieu de mysql_fetch_array à cette réponse :
"Y'a un num_rows qu'est plus rapide il faut mettre un fetch_assoc, pourquoi ?"
alors qu'il faut mettre un fetch_row pour gagner en rapidité, bref HS ta réponse...
Les indices numériques sont toujours plus rapides que les chaînes de caractères, quand tu fais un fetch_array il faut toujours mettre MYSQL_ASSOC sauf si tu veux générer deux tableaux (les perfs s'en ressentent).
Bref webdeb tu ne m'as pas convaincu avec tes réponses...