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 :

Imbrication de boucles et foreach [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut Imbrication de boucles et foreach
    Salut!

    J'ai une imbrication de boucles qui actuellement fonctionne parfaitement.
    Voici le code :

    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
     
    <?php
    # Requête
     
    $data=array();
     
    while ($results = mysql_fetch_assoc($services)) {
    $data[$results['nom_service']][]=$results;
    }
     
    foreach( $data as $type=>$items){ 
     
      $tpl->assign_block_vars('types', array(
            'NOM_SERVICE'    => $type,
        ));
     
    //Pour chacune des catégories, on assigne le second bloc contenant ses details
    foreach( $items as $k=>$value ){
     
    $tpl->assign_block_vars('types.services', array(
    					'TEXTE' => $value['texte'],
    	 ));
    }
    }
    ?>
    Sur la table où figure "nom_service" je souhaite ajouter un nouveau champs : "desc_service". Je voudrais le faire afficher sous le titre de chaque "nom_service".
    J'ai essayé en ajoutant une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data[$results['desc_service']][]=$results;
    et d'ajouter dans le foreach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'DESC_SERVICE'    => $type,
    Résultat, ma boucle se répète deux fois et le "desc_service" est écrit dans une des deux boucles.

    Avez-vous une piste pour afficher deux champs dans un foreach?

    En vous remerciant!

  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
    Par défaut
    Un possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while ($results = mysql_fetch_assoc($services)) {
    $data[$results['nom_service']][]=$results;
    $tblService[$results['nom_service']] = $results['desc_service'];
    }
     
    foreach( $data as $type=>$items){ 
     
      $tpl->assign_block_vars('types', array(
            'NOM_SERVICE'    => $type
        ));
     
      $tpl->assign_block_vars('types', array(
            'DESC_SERVICE'    => $tblService[$type]
        ));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 110
    Par défaut
    Merci Sabotage pour ton message, ça fonctionne! Juste un petit ajustement, rassembler la boucle types :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while ($results = mysql_fetch_assoc($services)) {
    $data[$results['nom_service']][]=$results;
    $tblService[$results['nom_service']] = $results['desc_service'];
    }
     
    foreach( $data as $type=>$items){ 
     
      $tpl->assign_block_vars('types', array(
            'NOM_SERVICE'    => $type,
            'DESC_SERVICE'    => $tblService[$type]
        ));
    Merci!

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

Discussions similaires

  1. [SSIS] [2K5] Boucle avec Foreach File Enumerator
    Par kellerman_com dans le forum SSIS
    Réponses: 7
    Dernier message: 25/02/2009, 14h55
  2. imbrication de boucle (exemple :d'upload)
    Par new-dmx dans le forum Langage
    Réponses: 2
    Dernier message: 01/09/2008, 15h18
  3. Boucles imbriquées foreach
    Par dafalri dans le forum Langage
    Réponses: 10
    Dernier message: 04/07/2008, 19h11
  4. [JSTL] Ma boucle c:forEach n´affiche pas tous les elements
    Par makohsarah dans le forum Taglibs
    Réponses: 1
    Dernier message: 10/06/2008, 16h52
  5. Encore problème d'imbrication de boucles
    Par flora806 dans le forum Langage
    Réponses: 4
    Dernier message: 21/02/2008, 15h25

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