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

Résolu
Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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

le père
 
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   Statut Membre Dernière intervention   11
 
Merci beaucoup le père, j'ai pu débuggué mon script grâce a toi !
0
Linukcs Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   14
 
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
le père
 
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
 
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