IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

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


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Warning: mysql_num_rows() expects parameter 1 to be resource, null given in
    Bonjour,

    Je viens de changer de serveur pour mes sites web (Debian 7 sur une Debian 8 et de mémoire Mysql 5 à Mysql 5.5).

    Pour un de mes sites, j'ai mis en place un système de commentaires sur les dossiers et un outil pour les modérer à priori.

    Seulement, cet outil qui n'a pas encore servi (pas encore de commentaires écrits pour le moment), me pose problème sur mon nouveau serveur.

    Voilà ce que j'obtiens sur mon outil en erreur PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Undefined variable: avis_query in avis.php on line 185
     
    Warning: mysql_num_rows() expects parameter 1 to be resource, null given in xxxxxx
    Ma requête est simple : Afficher le nom du dossier (et son lien) ainsi que les infos du commentaire (nom, prénom, email...) si celui-ci contient un commentaire non validé pour ce dossier.

    J'ai donc une table Dossiers (avec plusieurs dossiers écrits) et une table dossiers_comment vide pour le moment.

    Voici la requête avis_query :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM dossiers d LEFT JOIN dossiers_comment dc ON (d.id_doss = dc.id_doss) WHERE dc.ok_avis = 0
    J'ai compris que le problème se pose car dossiers_comment est vide pour le moment mais n'ai pas trouvé de façon correcte pour écrire de nouveau ma requête. Je peux rajouter une condition avant pour vérifier si elle est vide, certes mais au premier commentaire qui sera écrit, cette condition ne sera plus nécessaire. Je voudrais savoir pourquoi j'ai maintenant ce warning que je n'avais pas avant et quelle est la façon propre de faire (afin que je ne refasse plus cette erreur).

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 612
    Points : 19 838
    Points
    19 838
    Par défaut
    Salut Pierre007.

    Je fais du MySql PDO, donc ma réponse risque d'être différente.

    Il me semble qu'il vous manque une étape dans votre script php.
    Quand vous exécutez la requête, vous devez tester si celle-ci s'est exécuté normalement. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    try {
    	$sql=$link->query("select id from `tab_exemple`;");
    }
    catch ( Exception $e ) {
    	echo "Une erreur est survenue dans la requête : ", $e->getMessage();
    	die();
    }
    Puis ensuite, en tant que résultat, vous avez deux cas :
    --> soit null.
    --> soit un résultat.

    Votre problème est que vous récupérez null et vous testez le nombre de lignes par la fonction mysql_num_rows(). D'où le message d'anomalie !

    A partir du moment où elle est différente de null, vous pouvez tester le nombre de ligne, d'où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($sql) then $nbrline = mysql_num_rows($sql);
    else $nbrline = 0;
    @+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Merci à vous pour l'explication, c'est maintenant beaucoup plus clair pour moi. Je n'arrivais pas à visualiser concrètement le problème, avec des exemples concrets c'est beaucoup plus simple

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
    Par Sarah sh dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/12/2013, 19h12
  2. [MySQL] warning : mysql_fetch_assoc() expects parameter 1 to be resource
    Par zozoman dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2013, 14h51
  3. [MySQL] Message d'erreur: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean
    Par gennievre dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2012, 04h51
  4. Réponses: 5
    Dernier message: 14/12/2011, 08h38
  5. [MySQL] Warning: mysql_result() expects parameter 1 to be resource ..
    Par camyo dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/07/2010, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo