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

PHP & Base de données Discussion :

Erreur avec "mysql_fetch_row()" [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Par défaut Erreur avec "mysql_fetch_row()"
    Bonjour,

    j'ai un problème avec mon code PHP.
    Quand je vais sur la page voir si mon code fonctionne bien cette erreur s'affiche sur ma page :
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Nouvelle version 20101\php\essai.php on line 49
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    	include "connexion.php";
    //Création et envoi de la requête
    $query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelléCategorie";
    $result=mysql_query($query);
    //Récupération des résultats
    while ($row=mysql_fetch_row($result))
    {
    $NomEntreprise=$row[0];
    $TexteClient=$row[1];
    echo "<tr>\n
    	<td>$LibelleCategorie</td>\n
    	<td>$NomEntreprise</td>
    	<td>$TexteClient</td>\n";
    }
    // on ferme la connexion à mysql
    mysql_close(); 
    ?>
    IdCatégorie est la clé étrangère de la table client, je souhaite enfait affiché le libellé des catégorie pour les différentes entreprises.
    L'erreur qui s'affiche uniquement quand j'ai la la table catégorie dans mon code, quand je retire tout ce qui fait référence à cette table le code s'exécute bien et j'ai le nom des entreprise et le texte.

    Comment puis je faire pour résoudre ce problème ?

    par ailleurs est il possible en php de faire des tableaux ?
    ce que je souhaite faire c'est un tableau avec le libellé des catégories au dessus de chaque entreprise de la catégorie, puis dans la partie gauche du tableau le nom des entreprise et dans la partie de droite le texte.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    $query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelléCategorie";
    A+.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 86
    Par défaut
    ca ne change rien, j'ai retiré l'accent mais cela ne change rien il me met toujours la même erreur =/

    je remet mon code, j'ai vu que j'ai oublié une ligne dans l'autre code que j'ai mis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    	include "connexion.php";
    //Création et envoi de la requête
    $query="SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie Ca, Client Cl WHERE Ca.IdCategorie=Cl.IdCategorie ORDER BY LibelleCategorie";
    $result=mysql_query($query);
    //Récupération des résultats
    while ($row=mysql_fetch_row($result))
    {
    $LibelleCategorie=$row[0];
    $NomEntreprise=$row[1];
    $TexteClient=$row[2];
    echo "<tr>\n
    	<td>$LibelleCategorie</td>\n
    	<td>$NomEntreprise</td>
    	<td>$TexteClient</td>\n";
    }
    // on ferme la connexion à mysql
    mysql_close(); 
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre expérimenté
    Inscrit en
    Mai 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 177
    Par défaut
    Essaye comme ça pour ta requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "SELECT LibelleCategorie, NomEntreprise, TexteClient FROM Categorie
    INNER JOIN Client on Categorie.IdCategorie = Client.IdCategorie 
    ORDER BY LibelleCategorie";

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Par défaut
    Déjà le minimum c'est de wrapper tes appels à mysql_query pour vérifier systématiquement les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function query($query) {
      $res = mysql_query($query) or die('Query failed : "'.$query.'" error : "'.mysql_error().'"';
      return $res;
    }
    Exécute tes requêtes via des appels à query(), tu auras le détail de l'erreur si il y a un problème.

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

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