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 :

Double boucle dans un tableau


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut Double boucle dans un tableau
    Bonjour,

    savez-vous s'il est possible de faire 2 while dans un tableau ? je m'explique :

    Je dois afficher des données provenant de 2 tables, je fais 2 requêtes avec mon niveau de compétence. Ensuite j'affiche les données en bouclant sur chacun des array, mais je n'arrive pas à afficher les données du dernier array.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    $req11 = mysql_query("SELECT nom FROM utilisateurs WHERE droit_profil = 5");
    $tab11 = mysql_num_rows($req11);
     
    $req12 = mysql_query("SELECT adresse_livraison, cp, ville  FROM sites ");
    $tab12 = mysql_num_rows($req12);
     
    if(($tab11) && ($tab12)) { ?>
     
    <table>
    		<tr>
    		<td><b><u>Adresse livraison</u></b></td>
    		<td><b><u>Cp</u></b></td>
    		<td><b><u>Ville</u></b></td>
    		<td><b><u>Nom</u></b></td>
    		</tr>
     
    <?php while($row = mysql_fetch_array($tab12)) { ?>
     
    		<tr>
    		<td><?php echo $row['adresse_livraison']; ?></td>
    		<td><?php echo $row['cp']; ?></td>
    		<td><?php echo $row['ville']; ?></td>
    <?php }  ?>	
     
    		<?php while($row1 = mysql_fetch_assoc($tab11)) { ?>
     
    		<td><?php echo $row1['nom']; ?></td>
     
    		</tr>
    <?php } ?>
    		</table>
    <?php } ?>
    Merci

  2. #2
    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
    Le fetch se fait sur le résultat de la requete ($req11 et $req12).

  3. #3
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    tu as deux tables, les utilisateurs et les adresses.
    je suppose que tu t'es dit "un utilisateur peut avoir plusieurs adresses" ?

    voici donc les tables, grosso modo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    utilisateur(id, nom, ...)
    adresse(id, cp, ville, ...)
     
    adresse_utilisateur(id_utilisateur, id_adresse, ...)
    ainsi, au lieu de faire deux requêtes, tu peux faire :
    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
    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
     
    // requête utilisateurs
    $req_utilisateurs = '
    SELECT id,nom
    FROM utilisateur
    WHERE droit_profil = 5';
     
    // requête adresses de l'utilisateur
    $req_adresses_utilisateurs = '
    SELECT id,cp,ville
    FROM adresse
    INNER JOIN adresse_utilisateur AS au
    ON au.id_utilisateur = %id_utilisateur';
     
    // utilisateurs
    $utilisateurs = mysql_query($req_utilisateurs);
    $utilisateurs = mysql_fetch_array($utilisateurs);
     
    if($utilisateurs):?>
    <table>
       <tr>
         <td><b><u>Nom utilisateur</u></b></td>
         <td><b><u>Adresses</u></b></td>
       </tr>
       <?php foreach($utilisateurs as $utilisateur):?>
       <?php
         // requête addresses complétée
         $req_adresses = str_replace(
           '%id_utilisateur',
           $utilisateur['id'],
           $req_adresses_utilisateur);
     
         // adresses de l'utilisateur
         $adresses = mysql_query($req_adresses);
         $adresses = mysql_fetch_array($adresses);
       ?>
       <tr>
         <!-- info(s) utilisateur -->
         <td><?php echo $utilisateur['nom']?></td>
         <td>
         <!-- adresses utilisateurs -->
         <?php foreach($adresses as $adresse):?>
         <table>
         <tr>
           <td><?php echo $adresse['cp']?></td>
           <td><?php echo $adresse['ville']?></td>
         </tr>
         </table>
         <?php endforeach?>
         </td>
       <?php endforeach?>    
    </table>
    <?php endif?>
    je ne sais pas trop ce que tu veux faire, mais voilà une piste peut-être.

  4. #4
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut fusion
    Merci pour vos réponses

    Oui en fait je dois afficher des données provenant de 2 tables non liées dans un tableau.

    c'est une accolade les 2 points ? :

    if($utilisateurs)>


  5. #5
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($condition):?>
      <p>La condition est respectée.</p>
    <?php endif?>
    Eq.à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($condition)
    { ?>
       <p>La condition est respectée.</p>
    <?php
    } ?>
    un script PHP peut être écrit "à la manière d'un langage de template"
    comme Smarty par exemple. c'est un simplification d'écriture pour
    les graphistes, intégrateurs XHTML etc...

  6. #6
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    ooops! Désolé je ne connais pas encore cette syntaxe.

    Merci encore

Discussions similaires

  1. un soucis de boucle dans un tableau
    Par Othana dans le forum VB.NET
    Réponses: 13
    Dernier message: 23/02/2011, 17h44
  2. [phpToPDF] Boucle dans un tableau
    Par breizhlama dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 03/05/2010, 17h45
  3. [Spip] résultat de boucle dans un tableau
    Par oceane751 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 20/08/2008, 11h23
  4. [MySQL] Pagination : faire une boucle dans un tableau ?
    Par benjam89 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/09/2007, 21h10
  5. [Tableaux] Boucle dans un tableau
    Par apprenti-fab dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2006, 11h14

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