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

Langage PHP Discussion :

Afficher le contenu d'une requête dans un tableau


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Afficher le contenu d'une requête dans un tableau
    Salut, j'ai le résultat de cette requete à mettre dans un tableau indexé mais pas moyen:

    $paf = mysql_query (" SELECT id_commande from commande,user,livre where commande.id_client=user.id_client AND commande.id_livre=livre.id_livre AND email=\"$client\" GROUP BY id_commande; ");
    $pif = mysql_fetch_array($paf) ;

    echo $pif[2];
    La requête est bonne si je la lance dans mysql elle me retourne 3 ID.
    J'arrive a afficher pif[0] mais pour pif[1] j'ai cette erreur: Notice: Undefined offset: 1

    Que faire?

    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    tu confonds nombre d'enregistrements et nombre de champs, comme tu ne sélectionnes qu'un seul champ (id_commande), il n'y a que $pif[0] qui est défini.

    Pour récupérer tes 3 enregistrements:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ($pif = mysql_fetch_array ($paf))
    {
    echo $pif[0] . '<br>';
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Jsuis désolé jsuis un noob mais comment je stock mes résultats dans un tableau où je peux appeler son index n'importe quand?

    $paf = mysql_query (" SELECT id_commande from commande,user,livre where commande.id_client=user.id_client AND commande.id_livre=livre.id_livre AND email=\"$client\" GROUP BY id_commande; ");
    $k=0;
    while ($pif = mysql_fetch_array($paf) )
    {
    $commande = array();

    $commande[$k] = $pif[$k];

    $k++;
    }
    echo $commande[2];
    mais ça marche pas

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    même confusion l'indice du tableau $pif ne représente pas un n° d'enregistrement mais un n° de champ => $pif[0] représente donc la valeur du camp id_commande (ton 1° champ dans ta requête)... pour mettre les choses au clair, utilise plutôt le nom du champ à la place de l'indice:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($pif = mysql_fetch_array ($paf))
    {
    echo $pif['id_commande'] . '<br>';
    }
    chaque appel à la fonctionmysql_fetch_array assigne un enregistrement retourné par ta requpte au tableau $pif

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Donc ce code devrait marcher?

    $paf = mysql_query (" SELECT id_commande from commande,user,livre where commande.id_client=user.id_client AND commande.id_livre=livre.id_livre AND email=\"$client\" GROUP BY id_commande; ");
    $k=0;
    while ($pif = mysql_fetch_array($paf) )
    {
    $commande = array();

    $commande[$k] = $pif['id_commande'];

    $k++;
    }
    echo $commande[0];

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    ce srait plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $paf = mysql_query (" SELECT id_commande from commande,user,livre where commande.id_client=user.id_client AND commande.id_livre=livre.id_livre AND email=\"$client\" GROUP BY id_commande; ");
     
    $commande = array();
    while ($pif = mysql_fetch_array($paf) )
    {
    $commande[] = $pif['id_commande'];
    }
    echo $commande[0];
    et $commande[0] devrait contenir l'id_commande du 1°enregistrement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Super merci =)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    j'y pense seulement maintenant mais la fonction mysql_result () t'éviterait la boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    mysql_result ($paf, 0);    //1° enregistrement
    mysql_result ($paf, 1);    //2° enregistrement
    mysql_result ($paf, 2);    //3° enregistrement

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    J'ai un dernier problème:

    $requete = mysql_query ('SELECT id_commande from commande,user where commande.id_client=user.id_client AND email=\"$client\" GROUP BY id_commande; ');
    $total = mysql_num_rows ($requete);
    logiquement ça devrait compter le nombre d'enregistrement mais j'ai une erreur. Pourtant la requete passe dans mysql et me retourne 3 réponses.

    Avec la requete SELECT id_commande from commande GROUP BY id_commande ça passe mais pas avec celle ci

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    les simples quotes (') n'interpretent pas les variables php dans les chaines de caractères, tu dois faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query ('SELECT id_commande from commande,user where commande.id_client=user.id_client AND email="' . $client . '" GROUP BY id_commande');
    ou:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = mysql_query ("SELECT id_commande from commande,user where commande.id_client=user.id_client AND email='$client' GROUP BY id_commande");
    et dans tous les cas pour débugger une requête sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = mysql_query ($ta_requete) or die ($ta_requete . ' : ' . mysql_error ());

Discussions similaires

  1. Afficher le résultat d'une requête dans un tableau
    Par amola1992 dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 24/07/2014, 16h45
  2. Réponses: 1
    Dernier message: 31/12/2012, 12h53
  3. Afficher les résultats d'une requête dans un tableau
    Par zoro007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/08/2010, 10h30
  4. Afficher les données d'une requête dans un tableau
    Par Elasnaoui dans le forum ASP.NET
    Réponses: 6
    Dernier message: 27/02/2010, 21h52
  5. [MySQL] Afficher le résultat d'une requête dans un tableau
    Par magobouli dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/02/2007, 15h41

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