[PHP/MySQL]un simple test... [resolu]

Je voulais juste faire un test, en afficahnt une table de mysql :

$link = mysql_connect($serveur,$username,$password);
mysql_select_db("mysql", $link);

$query = "SELECT host,user,password FROM user";
$result = mysql_query($query, $link);

$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";
mysql_close();
?>

et j’obtiens l’erreur suivante :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www//test.php on line 32
Rows

En gros, il accepte pas mysql_num_rows, alors que je sors l’exemple de la doc meme de MySQL !!!!

QQun a une idée ?

Je ne voit pas l’initialisation des variable $serveur,$username et $password. L’as tu fais avant?

Ensuite, je te conseille de faire ta requete ainsi


$result = mysql_query($query) or die(mysql_error($querry))

La close ‘or die’ te permet de savoir si,à la base,ta requête est correcte.

Edit : Exemple a ne pas suivre :
:non:
Voila, quand à ton problème, "mysql_num_rows" ne prend pas en parametre le resultat de la requete, mais la requête elle meme :slight_smile:

Donc en fait, tu dois avoir:


$num_rows = mysql_num_rows($query);


Oula, oué, grosse erreur de ma part lol. J’ai mal lu sur mon code :ane: :ane:

J’ai trop l’habitude d’appelé $result le mysql_fetch_array :jap:

Donc en fait, je vais reflechir au problème à nouveau

hellmaster->je ne suis pas d’accord avec toi sur le mysql_num_rows

http://fr.php.net/manual/fr/function.mysql-num-rows.php

sinon, oui il faut que tu testes si ta requete a été bien exécutée

en faisant ça:


$link = mysql_connect($serveur,$username,$password);
mysql_select_db("mysql", $link);

$query = "SELECT host,user,password FROM user";
$result = mysql_query($query, $link);
if(mysql_errno() != 0) 
{
     echo mysql_error();
     mysql_close();
     exit();
}

$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";
mysql_close();
?>


tu verras l’erreur lors de l’exécution de la requete

le code marche sans pb chez moi, dc je vois pas trop pourquoi ça marche pas

essaye qd meme de mettre plutot mysql_pconnect

mais s’il se déconnectait vraiment, le mysql_query crierait
après il faut voir si tes tables et tes champs existent … ce qui serait génant si ce n’était pas le cas …

au passage

echo $num_rows." Rows\n";

c quand même plus propre

OK, merci a jeanguy… et aux autres !!

Mais jeanguy m’a permis de voir que c’etait un erreur de login/passwd…

++ les gens

A noter une chose à propos du or die :

$id = mysql_connect(…) || die( ‘x’ )

ne fonctionnera pas correctement !

($id = mysql_connect(…)) || die( ‘x’ )

oui.
C’est la minute or !