Les Allergies
Alimentaires
Posez votre question Signaler

{MySQL} mysql_num_rows(): supplied argument... [Résolu]

Linukcs 53Messages postés 12 octobre 2009Date d'inscription 16 mai 2012Dernière intervention - Dernière réponse le 5 avril 2011 à 22:02
Bonjour,
Afin de livrer une commande, l'utilisateur doit entrer son nom, prénom et adresse. Ceux-ci doivent êtres traités dans la base de données MySQL.
Seulement pour éviter les doublons, je dois tester si le client est déjà existant.
Mais y'a une erreur :
mysql_num_rows(): supplied argument is not a valid MySQL result resource in **mask** on line 22
NOTE : j'ai mis un test d'erreur derrière la requête MySQL à la fin de ma requête... aucune erreur ne ressort :(
J'ai du mal à repérer d'où vient le problème, donc je sollicite votre aide.
Voici le code en question:
[code]
Traitement de votre commande....
<?php
$nom = $POST['nom'];
$prenom = $POST['prenom'];
$adress = $POST['adress'];
$db=mysql_connect("10.187.122.4",**mask**,**mask**);
mysql_select_db("levisse_b", $db);
$clientsqltest = "SELECT * FROM levisse_b.`DBClient` D
WHERE D.`nom` = '".$nom. "'
AND D.`prenom` = '".$prenom."'
AND D.`adresse` = '".$adress."'
ORDER BY `idclient` ASC ";
$clientsqltestrq = mysql_query($clientsqltest) or die(mysql_error()) ;
$clientsqladd = "INSERT INTO client ('','".$nom."','".$prenom."','".$adress."')";
echo mysql_error() ;
if (mysql_num_rows($clientsqltest)<1) // Voilà le lieu présumé de l'erreur
{
mysql_query($clientsqladd);
// quote next not for debug mode
echo 'Nouveau client';
}
// quote next not for debug mode
else echo 'Client déjà existant';
mysql_free_result($clientsqltestrq);
mysql_close($db);
?>
/code
Merci d'avance de vos réponses!
Lire la suite 

{MySQL} mysql_num_rows(): supplied argument »

4 réponses
Réponse
+3
moins plus
Bonjour

Normal que ça ne marche pas. Tu fais le test sur la requête ($clientsqltest) au lieu du résultat ($clientsqltestrq)
Caïnael- 5 avril 2011 à 22:02
Merci beaucoup le père, j'ai pu débuggué mon script grâce a toi !
Ajouter un commentaire
Réponse
+0
moins plus
RE!

En effet, en testant le résultat, le message d'erreur disparaît.
Je comprends donc pas pourquoi on m'a dit de tester la requête :D je me souviendrai d'utiliser le résultat.

Merci papa ;)
Ajouter un commentaire
Réponse
+0
moins plus
on m'a dit
N'écoute pas ce qu'on te dit et lis la doc. C'est là que tu apprendras quelque chose.
mysql_num_rows travaille sur le résultat d'une requête, ce qui est d'ailleurs le bon sens même :
http://fr.php.net/manual/fr/function.mysql-num-rows.php
Ajouter un commentaire
Ce document intitulé « {MySQL} mysql_num_rows(): supplied argument... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?