{MySQL} mysql_num_rows(): supplied argument...

Résolu/Fermé
Linukcs Messages postés 79 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 10 octobre 2012 - 12 oct. 2009 à 11:21
 Utilisateur anonyme - 30 juin 2013 à 17:12
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!

4 réponses

Bonjour

Normal que ça ne marche pas. Tu fais le test sur la requête ($clientsqltest) au lieu du résultat ($clientsqltestrq)
3
Caïnael Messages postés 83 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 9 décembre 2013 11
5 avril 2011 à 22:02
Merci beaucoup le père, j'ai pu débuggué mon script grâce a toi !
0
Linukcs Messages postés 79 Date d'inscription lundi 12 octobre 2009 Statut Membre Dernière intervention 10 octobre 2012 14
12 oct. 2009 à 11:52
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 ;)
0
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 :
https://www.php.net/manual/fr/function.mysql-num-rows.php
0
Utilisateur anonyme
30 juin 2013 à 17:12
Salut jai la meme erreur avec ce code
aidez moi svp!!
merci
if($username&&$password)
	{
	mysql_select_db('mecraft_login');
	$query = mysql_query("SELECT * FROM checkbox WHERE username='$username' AND password='$password'");
	
	$rows = mysql_num_rows($query);  // L'ERREUR !!
	mysql_close();
	if($rows==1)
	{
	   if($_POST['checkbox'])
	     {
		 setcookie('username',$username,time()+3600);
		 header('Location:membre.php');
		 }else {$_SESSION['username']=$username;
		 header('Location:membre.php');
		 }
0