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 :

Boucle While + Mysql [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut Boucle While + Mysql
    Bonjour à tous !

    Je doit faire une boucle pour stocker le résultat d'une requête dans un tableau.

    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
    //rqt affichage de la facture en cours
    $rqt_getfacture = mysql_query("
      SELECT F.Qte, A.Lib_Article, C.PU_1
      FROM Article A
      INNER JOIN Facture F ON A.ID_Article = F.Code_Article
      INNER JOIN Cndt C ON A.ID_Article = C.Code_Art");
            var_dump($rqt_getfacture);
    $data_facture = "";
    $mnt_tt_ht = 0;
    while($data_facture = mysql_fetch_array($rqt_getfacture)){
         echo'
         <tr>
               <td>'.$data_facture[1].'</td><td>'.$data_facture[0].'</td><td>'.$data_facture[2].'</td><td>'.$data_facture[0]*$data_facture[2].'</td>
         </tr>
          ';
    J'ai 3 enregistrement, au lieu de me faire 3 ligne comme prévu il en fait 3*3

    PS : Base + requête http://www.developpez.net/forums/d12...e/#post6949215


    Le var_dump me dit qu'il y a 12 element dans mon tableau

  2. #2
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Awery Voir le message
    J'ai 3 enregistrement, au lieu de me faire 3 ligne comme prévu il en fait 3*3


    Le var_dump me dit qu'il y a 12 element dans mon tableau
    3*3 = 9
    12 éléments? Il y a quoi dans ton tableau exactement?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par ledisciple Voir le message
    3*3 = 9
    12 éléments? Il y a quoi dans ton tableau exactement?
    Il y a 3 fois le même résultat qui est 3 enregistrement

    (en gros 9 lignes)

  4. #4
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Bonjour,

    Je pense que c'est à cause des jointures dans la requête.
    Quand tu écrivais
    J'ai 3 enregistrements
    c'est dans la table Article que tu les as? Car si on se base sur la réflexion suivante: un article peut être facturé plusieurs fois, le résultat d'une requête comprenant les tables Article et Facture (en jointure interne) afficherait nombre de lignes dans Article multiplié par le nombre de lignes dans la table Facture qui sont connexes à une ligne Article.

    Quand tu exécutes séparément la requête dans PHPMyAdmin par exemple, elle te donne quoi?

    Cordialement,
    Mahefasoa

  5. #5
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Awery Voir le message
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given
    Tu l'as toujours ton erreur?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Mahefasoa Voir le message
    Quand tu exécutes séparément la requête dans PHPMyAdmin par exemple, elle te donne quoi?
    Ca me donne le résulta pas attendue 3x le même enregistrement (3x le résultat voulue de ma requête

    Ca viens effectivement de ma requête.

    Citation Envoyé par ledisciple Voir le message
    Tu l'as toujours ton erreur?
    Non j'ai modifier la requête.

  7. #7
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par ledisciple Voir le message
    Tu l'as toujours ton erreur?
    Salut François,

    Elle vient d'ou cette erreur ???? (ps: j'ai regardé pour les smiley's d'or, ça bouillonne sur ce Post hi hi hi, Mais je comprends pas tout ???)

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Fench Voir le message
    Salut François,

    Elle vient d'ou cette erreur ???? (ps: j'ai regardé pour les smiley's d'or, ça bouillonne sur ce Post hi hi hi, Mais je comprends pas tout ???)
    Elle viens d'une autre requête corriger, elle n'existe plus

  9. #9
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par Awery Voir le message
    Non j'ai modifier la requête.
    Pourquoi tu n'as pas conservé le code que l'on t'avait donné sur le form mysql?

    Citation Envoyé par Fench Voir le message
    Salut François,

    Elle vient d'ou cette erreur ???? (ps: j'ai regardé pour les smiley's d'or, ça bouillonne sur ce Post hi hi hi, Mais je comprends pas tout ???)
    Tu verras, il y a un lien intégré dans son premier post ...

    Il n'y a rien à comprendre, juste à participer !!! Rien à perdre, alors n'hésite pas !!!

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par ledisciple Voir le message
    Pourquoi tu n'as pas conservé le code que l'on t'avait donné sur le form mysql?
    C'est celui-ci en corriger

  11. #11
    Membre éclairé Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Points : 723
    Points
    723
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT F.Qte, A.Lib_Article, C.PU_1
      FROM Article A  
      JOIN Cndt C    ON C.Code_Art = A.ID_Article
      JOIN Facture F ON F.Code_Article = A.ID_Article
                    and f.id_conditionnement = c.id_conditionnement
    Et celui la?

    En tout cas, je rejoins l'opinion de Mahefasoa, c'est bien une erreur de requête ...

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Résultat
    Qte Lib_Article PU_1
    1.00 BLOC WC BLEU 9.75
    30.00 SOLUCLEAN DOSE 30 GRS CART / 100 DOSES 3.10
    12.00 AMBIANCE SENTEUR CITRON 14.50
    1.00 BLOC WC BLEU 9.75
    30.00 SOLUCLEAN DOSE 30 GRS CART / 100 DOSES 3.10
    12.00 AMBIANCE SENTEUR CITRON 14.50
    1.00 BLOC WC BLEU 9.75
    30.00 SOLUCLEAN DOSE 30 GRS CART / 100 DOSES 3.10
    12.00 AMBIANCE SENTEUR CITRON 14.50
    1.00 BLOC WC BLEU 9.75
    30.00 SOLUCLEAN DOSE 30 GRS CART / 100 DOSES 3.10
    12.00 AMBIANCE SENTEUR CITRON 14.50
    3 fois la même chose. Je sais vraiment pas d'ou ça viens

    PS :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT F.Qte, A.Lib_Article, C.PU_1
    FROM Article A
    JOIN Cndt C ON C.Code_Art = A.ID_Article
    JOIN Facture F ON F.Code_Article = A.ID_Article
    AND f.Code_Article = c.Code_Art

  13. #13
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Alors j'ai deux trois remarques ...

    Dans ta table des articles, c'est quoi cette ligne HYDRO sans id ni rien ?

    J'ai l'impression que le but final est de calculer le prix facture suivant l'article et la quantité puisque en fonction de la quantité le P.U est différent ET DANS CE cas, tu n'auras qu'une jointure à faire pour ensuite faire ton tableau avec les bonnes valeurs de facturation (je comprends Philippe 'Cinephil' pour ta modélisation

    En dernier, c quoi le but de ta requête, pour quel affichage ?

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    C'est juste pour calculer le total par apport à la qte

    Les nom d'article ne sont pas dans la même table que le prix unitaire, le prix unitaire n'est pas dans la même table que la facturation

    Je crée une table facture d'on je met l'id de l'article et la qte.

    Oui le modèle est très bas de gamme

  15. #15
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Citation Envoyé par Awery
    C'est juste pour calculer le total par apport à la qte
    Et suivant la quantité le pu est différent, non ...

    Puisque cette requête dure, que la solution n'est pas trouvée et que le modéle à l'air dans bas de gamme (je reprends tes dires, ), je ferais comme suit:

    Une boucle sur ta table facture avec l'id et la qt :: début boucle
    dans cette boucle pour chaque article (id), une jointure pour avoir le libellé
    et le pu en fonction de la quantité.
    dans cette boucle, le calcul total = qt*pu_ajusté puis affichage ou enregistrement
    fin boucle

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Points : 26
    Points
    26
    Par défaut
    Grâce un ami, nous avons trouver la solution, qui venant bien de la requête. Je vous laisse le code :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT F.Qte, A.Lib_Article, C.PU_1 
    FROM Facture F, Article A, Cndt C
    WHERE A.ID_Article = F.Code_Article
    AND  A.ID_Article = C.Code_Art
    GROUP BY F.Qte, A.Lib_Article, C.PU_1

    Code PHP : 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
    $rqt_getfacture = mysql_query("
            SELECT F.Qte, A.Lib_Article, C.PU_1 
            FROM Facture F, Article A, Cndt C
            WHERE A.ID_Article = F.Code_Article
            AND  A.ID_Article = C.Code_Art
            GROUP BY F.Qte, A.Lib_Article, C.PU_1");
            var_dump($rqt_getfacture);
            $data_facture = "";
            $mnt_tt_ht = 0;
            while($data_facture = mysql_fetch_array($rqt_getfacture)){
               echo'
                <tr>
                    <td>'.$data_facture[1].'</td><td>'.$data_facture[0].'</td><td>'.$data_facture[2].'</td><td>'.$data_facture[0]*$data_facture[2].'</td>
                </tr>
     
        ';

    Merci pour vos aides !
    <3 <3

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

Discussions similaires

  1. [MySQL] Boucle while pour insert Mysql
    Par maxdata dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/05/2014, 22h49
  2. erreur mysql-fetch_array dans une boucle While
    Par carmen256 dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/04/2006, 17h15
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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