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

Requêtes MySQL Discussion :

Problème de boucles imbriquées


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Problème de boucles imbriquées
    Bonjour à tous

    je viens demander votre aide pour des boucles imbriquées que je n'arrive pas à faire...
    Uniquement la première valeur est retournée.

    Ma base sert pour traiter des commandes, en ayant fait un tri au préalable dans la base /date et /Plateforme

    je cherche à avoir les informations comme suit:
    - Code Magasin 1
    - ligne 1 de la commande
    - ligne 2 de la commande
    - etc...
    - Code Magasin 2
    - ligne 1 de la commande
    - etc...

    chacune des boucles fonctionne indépendamment mais pas quand je les imbrique...

    Merci d'avance de votre aide!!

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
    if (isset($_POST['Plateforme']) AND isset($_POST['Date_Livraison']))
    {
     
    // Requete pour les plateformes //
     
    	   $req = $bdd->prepare('SELECT C.id_Magasin mag_cde,
    	   								C.Numero num_cde,  
    									C.Montant mnt_cde,
    									C.Ref_Fournisseur four_cde,
        								C.Date_Livraison D_Livraison,
    									tmp.Nom fichier_Nom,
    									tmp.Zone fichier_Zone,
    									tmp2.id,
    									tmp2.Nom_Plateforme Nom_Plateforme,
    									C.Quantite  qte_cde,
    									C.Poids Poids
    									FROM Commandes C			
    							LEFT JOIN 
    								(
        								SELECT id_Mag, 
    									Nom, 
    									Zone,
    									id_Plateforme
        								FROM Magasins
        								GROUP BY id_Mag
    								) tmp 
        						ON tmp.id_Mag = C.id_Magasin
    							LEFT JOIN
    								(
    									SELECT id,
    									Nom Nom_Plateforme
    									FROM Plateformes
    								) tmp2
    							ON tmp2.id = tmp.id_Plateforme
    							WHERE C.Date_Livraison = :date AND tmp2.id = :type
    							ORDER BY mag_cde
    	   					')  
    	   or die(print_r($bdd->errorInfo()));
     
    	   $req -> execute(array('date' => $_POST['Date_Livraison'], 'type' => $_POST['Plateforme']));
     
     
    				while ($donnees = $req -> fetch())
    				{
     
    ?>
                  	<table>
                    Affichage des données plateformes
                    </table>
                      <?php
     
    // Requete pour le detail des commandes //
     
                      $req = $bdd->prepare('SELECT C.id_Magasin mag_cde,
    	   								C.Numero num_cde,  
    									C.Montant mnt_cde,
    									C.Ref_Fournisseur four_cde,
        								C.Date_Livraison D_Livraison,
    									C.Quantite  qte_cde,
    									C.Poids Poids,
    									tmp.id_Plateforme 
    									FROM Commandes C
    								LEFT JOIN 
    								(
        								SELECT id_Mag, 
    									Nom, 
    									Zone,
    									id_Plateforme
        								FROM Magasins
        								GROUP BY id_Mag
    								) tmp 
        						ON tmp.id_Mag = C.id_Magasin
    							WHERE C.Numero = '.$NumCde.'
    							ORDER BY four_cde
    	   					')  
    	   or die(print_r($bdd->errorInfo()));
     
    	   $req -> execute(array('date' => $_POST['Date_Livraison'], 'type' => $_POST['Plateforme']));
     
     
    				while ($donnees = $req -> fetch())
    				{
    				 ?>
                     <tr>
                    Affichage des details des commandes
                    </tr>
     
                     <?php
    				}
     
    				}
    				$req -> closeCursor();  // Termine le traitement de la requete

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour à tous,

    j'ai résolu mon problème.

    je vous mets ma solution si cela peut aider quelqu'un, même si cela peu être certainement amélioré (je ne suis vraiment pas un pro) mais cela fonctionne.

    Je vous ai mis une des requêtes, en sachant que toutes les requêtes sont tu même type (seul les données à trier change), le point vraiment important étant de bien fermer la requête avant de lancer la suivante.

    On peut comme cela faire autant de requêtes que nécessaire pour après les afficher comme on le souhaite.

    Cedric

    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
    17
    18
    19
    20
     
     
    // Requête à faire sur la base
     
    	   $req3 = $bdd->prepare('REQUETE A FAIRE')  
     
    	   or die(print_r($bdd->errorInfo()));
     
    	   $req3 -> execute(array('TRIS SI NECESSAIRE']));
     
     
    // Générer le tableau des données
     
    				while ($PL = $req3 -> fetch(PDO::FETCH_ASSOC))
    				{
    				$Plateforme[] = $PL;
    				}
     
    // Termine le traitement de la requete				
    		$req3 -> closeCursor();

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

Discussions similaires

  1. Problème de boucle imbriquée
    Par Phossoyeur dans le forum C#
    Réponses: 0
    Dernier message: 19/06/2012, 14h09
  2. [OCaml] Problème de boucles imbriquées
    Par Capitain_jupi dans le forum Caml
    Réponses: 0
    Dernier message: 01/10/2011, 13h42
  3. Problémes de Boucles imbriquées
    Par claude_tech dans le forum Débuter
    Réponses: 11
    Dernier message: 13/06/2011, 12h57
  4. [XSLT] problème de boucle imbriquée en xsl/xpath
    Par lol88 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/10/2009, 18h30
  5. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26

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