"expects parameter 1 to be resource" aléatoire

Petit nouveau ! | 3 Messages

29 août 2011, 17:25

Bonjour,

Sur un site php, j'utilise une liste déroulante qui recharge la page pour afficher un tableau d'après des critères. Cela fonctionne bien jusqu'au moment ou l'écran n'affiche plus mon tableau et cela de manière apparemment aléatoire avec une erreur dans mes logs :

PHP Warning: mysql_num_rows() expects parameter 1 to be resource, null given in...

Lorsque j'affiche l'erreur j'obtiens un message : query was empty

Voici le code qui pose problème :

Code : Tout sélectionner

$requete = mysql_query("SELECT m.nom_module FROM module m,module_client mc WHERE mc.ID_user = ".$_SESSION['ID_user']." AND mc.ID_module = m.ID_module ORDER BY nom_module"); $nombrelignes = mysql_numrows($requete);
Je précise que les variables utilisées dans cette requête sont bien positionnées lorsque que je fait un echo.

Je galère depuis pas mal de temps, merci de votre aide...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 août 2011, 17:49

lu,

ta requete est foireuse, mysql_query ne retourne pas une ressource.

tu peux utiliser mysql_error() pour avoir un message d'erreur correct.

$requete = mysql_query("SELECT m.nom_module
FROM module m,module_client mc
WHERE mc.ID_user = ".$_SESSION['ID_user']."
AND mc.ID_module = m.ID_module
ORDER BY nom_module");
if ($requete == false) echo mysql_error();

par exemple

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

29 août 2011, 18:04

Ca maaaaarche...

En fait j'avais un message "no database selected" en rajoutant un mysql_select_db(...) en début de page, ça fonctionne.

Par contre ce que je ne comprends pas c'est pourquoi cela fonctionnait de temps en temps...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 août 2011, 18:07

parce qu'avec un jeu d'inclusion de fichier tu avais une sélection de base faite avant ?

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 275 Messages

29 août 2011, 18:11

Quand ta session est expirée ta requete est "mc.ID_user = AND ...", donc erreur

Petit nouveau ! | 3 Messages

29 août 2011, 18:15

Ok, c'est clair j'avais effectivement une page avant avec une connexion...

Merci pour la réactivité de la réponse.