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 :

question bete: afficher le resultat d'une requete ? [Fait]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Points : 36
    Points
    36
    Par défaut question bete: afficher le resultat d'une requete ?
    Bonjour, voilà je me pose une question de debutant mais j'ai du mal a saisir un truc, lorsque l'on fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($donnees = mysql_fetch_array($retour))
    {
    }
    print_r $donnees['prix'];
    print_r $donnees['facture'];
    Pourquoi, je n'arrive pas à afficher le contenu du tableau $donnees ?
    pourquoi suis je obligé par exemple de faire quelque chose comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    i=0;
    while ($donnees = mysql_fetch_array($retour))
    {
    $prix[i]=$donnees['prix'],
    $facture[i]=$donnees['facture'];
    ...
    $i++;
    }
    print_r $prix;
    print_r $facture;
    N'y a t il pas moyen de faire plus simple, comment fonctionne cette fonction mysql_fetch_array ?
    merci

  2. #2
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Bonjour,

    c'est une erreur de copier/coller ou ton print_r est à l'extérieur de ta boucle ?
    Shiv@ Skunk

  3. #3
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    comment fonctionne cette fonction mysql_fetch_array ?
    Elle lit un enregistrement et avance d'un cran.
    Pourquoi, je n'arrive pas à afficher le contenu du tableau $donnees ?
    Lorsqu'il n'y a plus d'enregistrements, mysql_fetch_array renvoit FALSE et on sort de la boucle while.
    A la sortie de la boucle, $donnees vaut FALSE.
    N'y a t il pas moyen de faire plus simple ?
    Comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ($donnees = mysql_fetch_array($retour))
    {
    $prix[]=$donnees['prix'],
    $facture[]=$donnees['facture'];
    }
    print_r $prix;
    print_r $facture;
    Avec PDO (si ton hebergement le permet) tu peux recuperer tous les enregistrements d'un coup.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Points : 129
    Points
    129
    Par défaut
    le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while ($donnees = mysql_fetch_array($retour))
    {
    }
    print_r $donnees['prix'];
    print_r $donnees['facture'];
    Execute une boucle avec affectation ,c'est à dire qu'il met les valeurs de ton mysql_fetch_array dans $donnees et ensuite test si $donnees est valide dans ce cas il passe dans la boucle puis réeffectue l'affectation.

    Dans ton cas si tu à un seul enregistrement au deuxieme passage $donnees est faux, donc tu n'a plus rien dans ton tableau

    j'espère avoir été clair

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    c'est une erreur de copier/coller ou ton print_r est à l'extérieur de ta boucle ?
    oui c'était normal, ou du moins c'est comme cela que je voyais les choses jusque là

    par contre c'est quoi PDO ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prix[]=$donnees['prix'],
    $facture[]=$donnees['facture'];
    Pourquoi $prix[] et $facture[], enfin je savais pas que l'on pouvait écrire cela comme ca comment php interpréte le fait qu'il n'y ait rien entre les crochets [] ?


    alors si j'ai bien compris:

    $retour = ("SELECT * FROM .....)
    while ($donnees = mysql_fetch_array($retour))
    {
    }

    On est bien d'accord que $retour contient un truc illisible avec PHP ??
    Bon donc dans mon cas si je comprends bien, si ma requête sql retourne 3 enregistrements, alors on va tourné 3 fois dans la boucle, mais en fait $donnees sera un tableau (array) qui contiendra une ligne (prix + facture par exemple), mais jamais l'intégralité du retour de la requête, en fait:

    au 1er tour dans la boucle on aura $donnees[0]=prix du 1er enregistrement et $donnees[1]=facture du 1er enregistrement

    puis au seconde tour, $donnees[0]=prix du 2nd enregistrement et $donnees[1]=facture du 2nd enregistrement

    puis au troisième tour, $donnees[0]=prix du 3eme enregistrement et $donnees[1]=facture du 3eme enregistrement

    ...et ainsi de suite, donc pour avoir un array avec les prix, et un autre avec les factures, il faudra faire:
    ...ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    i=0;
    while ($donnees = mysql_fetch_array($retour))
    {
    $prix[i]=$donnees['prix'],
    $facture[i]=$donnees['facture'];
    ...
    $i++;
    }
    ou ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($donnees = mysql_fetch_array($retour))
    {
    $prix[]=$donnees['prix'],
    $facture[]=$donnees['facture'];
    }

    Voilà corrigez moi si je me trompe (mais tapez pas trop fort, lol ) )

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Toutafé.

    $retour contient un truc illisible avec PHP ??
    $retour contient une "ressource".
    http://fr.php.net/manual/fr/language.types.resource.php
    Tu peux faire un var_dump($retour); pour le voir.

    la notation $tableau[] permet d'ajouter un element a la suite du tableau.
    http://fr.php.net/manual/fr/language.types.array.php
    Tu n'as pas besoin de t'embeter a incrementer toi meme un index.

    PDO est la méthode recommandé actuelle pour exploiter les bases de données.
    Si ton hebergement le permet ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. faire afficher le resultat d'une requete
    Par T'chab dans le forum Access
    Réponses: 12
    Dernier message: 16/05/2006, 15h56
  2. [C#]afficher le resultat d'une requete
    Par dieudo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/05/2006, 11h01
  3. [C#]afficher le resultat d'une requete
    Par dieudo dans le forum Access
    Réponses: 0
    Dernier message: 26/04/2006, 14h43
  4. afficher les resultats d'une requete mysql sur 3 colonnes
    Par harlock59 dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/12/2005, 14h38
  5. Comment afficher le resultat d'une requete?
    Par Looping94510 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 11/02/2005, 08h42

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