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 :

"Warning: mysql_fetch_object():" [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut "Warning: mysql_fetch_object():"
    bonjour à tous!
    j'ai 2 pages php,mapage1.php et mapage2.php
    mapage1.php m'affiche les catégories de ma bdd et à partir d'un lien sur chaque catégorie,mapage2.php doit m'affiché les sous catégories.
    Mon problème,mapage2.php me renvoie sans cesse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource
    mapage1.php
    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
    20
    21
    <?php
     
    $mabasededonnee="catalogue"; 
     
    $connection = mysql_connect("127.0.0.1","root",""); 
    // test la connection 
    if ( ! $connection ) 
      die ("connection impossible"); 
      // Connecte la base 
      mysql_select_db($mabasededonnee) or die ("pas de connection");   
        $sql = 'SELECT nom_famille FROM famille' ;
        $rs = mysql_query($sql) ;
    ?>
    <ul>
        <?php while ( $tuple = mysql_fetch_object($rs) ) : ?>
           <!--  <li> -->
               <img src="images/Bullet_Jaune.gif">
    		   <a href="mapage2.php?id=<?php echo $tuple->id_famille ?>">
                  <?php echo $tuple->nom_famille ?></a><br><br>
             <?php endwhile ?>
    </ul>
    mapage2.php
    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
    20
    21
    <?php
     
    $mabasededonnee="catalogue"; 
     
    $connection = mysql_connect("127.0.0.1","root",""); 
    // test la connection 
    if ( ! $connection ) 
      die ("connection impossible"); 
      // Connecte la base 
      mysql_select_db($mabasededonnee) or die ("pas de connection");   
     
        $sql = 'SELECT nom_produit FROM produit WHERE id_famille = ' . $_GET['id'] ;
        $rs = mysql_query($sql) ;
     while($row = mysql_fetch_object($rs)) {
        echo $row->nom_produit;
        //echo $row->fullname;
    }
    mysql_free_result($rs);
     
     
       ?>

    merci pour votre aide!

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    id_famille est un nombre ? Si ce n'est pas le cas, il faut mettre des quotes dans ta clause where. Il faut aussi mettre mysql_query() or die(mysql_error()) pour connaître ta cause d'erreur.
    A part ça, tout à l'air bon.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    salut à tous,

    merci guidav
    pour te répondre,id_famille est un nombre(défini auto_increment)

    merci celira
    en faite $_GET['id'] doit récuperer l'id de ma catégorie et faire la conrespondance dans ma table souscategorie où il est une clé étrangère.

    C'est à ce niveau que çà coince!

  5. #5
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    C'est simple en fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = 'SELECT nom_produit FROM produit WHERE id_famille = ' . $_GET['id'] ;
    tu lui dis de juste sélectionner nom_produit donc pour SQL seul nom_produit existe.... ensuite tu lui demandes de voir si id_famille = qqch seulement, il ne sait pas ce qu'est id_famille...

    CORRECTION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = 'SELECT nom_produit, id_famille FROM produit WHERE id_famille = ' . $_GET['id'] ;

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Je pense que le problème est au niveau du lien. Il te manque des ; après les echos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="mapage2.php?id=<?php echo $tuple->id_famille ; ?>">
    <?php echo $tuple->nom_famille; ?></a><br><br>
    Et pour savoir si tu as quelque chose dans la variable get il suffit de regarder l'url : si tu as mapage2.php?id= sans rien après le id, c'est mauvais signe
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Je crois plutot que c'est moua qui ai raison, NA !

  8. #8
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    je pense que j'ai un souci de syntaxe
    voici un nouveau bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $id_famille=$_GET['id_famille'];
    $sql = " SELECT nom_produit FROM produit WHERE id_famille =  '.$id_famille.'";
     $rs = mysql_query($sql) or exit(mysql_error() . "<br/>$sql");
     while($row = mysql_fetch_object($rs)) {
        echo $row->nom_produit;    
    }
    mysql_free_result($rs);
    et l'erreur suivante s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Champ 'id_famille' inconnu dans where clause
    SELECT nom_produit FROM produit WHERE id_famille = '.
    Notice: Undefined property: stdClass::$id_famille in E:\Program Files\EasyPHP 2.0b1\www\ibpsarl\test2.php on line 27
    .'
    et la ligne 27 conrespond à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo $row->nom_produit; 
    Un coup de pouce,s'il vous plait

  9. #9
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    LIS MON POST, j'avais corrigé avant même que tu ne montres l'erreur :'(

  10. #10
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    merci darkstar123456,
    mais même en ajoutant "id_famille" dans la requête,la même erreur s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Champ 'id_famille' inconnu dans field list
    SELECT nom_produit,id_famille FROM produit WHERE id_famille = '.
    Notice: Undefined property: stdClass::$id_famille in E:\Program Files\EasyPHP 2.0b1\www\ibpsarl\test2.php on line 27
    .'

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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