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 :

Problème de boucle pour affichage mise en forme table


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Points : 60
    Points
    60
    Par défaut Problème de boucle pour affichage mise en forme table
    je récupère de ma sgbd des données que je voudrais afficher de façon différente.

    le résultat SGBD est affiché comme ceci :

    année Action NB
    2011 CAB 3
    2011 ECH 1
    2011 IRR 8
    2012 IRR 5

    je voudrais un affichage :

    Année CAB ECH IRR
    2011 3 1 8
    2012 5

    Avec mon code ci-après, j'arrive à afficher le résultat comme suit :

    Année CAB ECH IRR
    2011 3
    1
    8
    2012 5

    Tout ne s'affiche pas sur la première ligne pour l'année 2011
    Merci de vous pencher sur mon pb qui ne doit pas être compliqué pour les experts présents sur ce site.

    voici mon 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
    26
    27
    <div>
    	<table>
    		<tr>
    		<th id="" width="auto">Année</th><?php	
    			for($i=0;$i<count($entete);$i++){ 		 ?>
    		<th align="center" id="" width="auto"><?php echo $entete[$i]['actions_nature'];?></th><?php	
    											    }      ?>
    		</tr>
     
    		<?php
     
    		for($j=0;$j<count($stat1);$j++){
    				?>
    				<tr>
    				<?php	
    				?>
     
    				<td align="center" id=""><?php if($stat1[$j]['Annee']!=$stat1[$j-1]['Annee']){echo $stat1[$j]['Annee'];}?></td> <?php	
    				for($k=0;$k<count($entete);$k++){ ?>
    				<td align="center" id=""><?php if($stat1[$j]['actions_nature']==$entete[$k]['actions_nature']){ echo $stat1[$j]['NB'];}?></td><?php	
    													     } 
    						?>
    		</tr>
    		<?php
    		}   ?>
    	</table>		
    	</div>

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Hello,

    Tu peux essayer ceci :
    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
    <?php
    // Données
    $data = array(
    	'CAB' => array( 2011 => 3 ),
    	'ECH' => array( 2011 => 1 ),
    	'IRR' => array( 2011 => 8, 2012 => 5 )
    );
     
    // Entête
    $header = array_keys($data);
     
    // Liste des années
    $years = array();
    foreach ($data as $value) {
    	$years = array_merge($years, array_keys($value));
    }
    $years = array_unique($years);
     
    // Tri croissant des années
    asort($years);
    ?>
    <table>
    	<thead>
    		<tr>
    			<th>Ann&eacute;e</th>
    			<?php foreach ($header as $label): ?>
    				<th><?php echo $label; ?></th>
    			<?php endforeach; ?>
    		</tr>
    	</thead>
    	<tbody>
    		<?php foreach($years as $year): // Une ligne par année ?>
    			<tr>
    				<th><?php echo $year; ?></th>
    				<?php foreach ($header as $key): ?>
    					<?php if (isset($data[$key][$year])): ?>
    						<td><?php echo $data[$key][$year]; ?></td>
    					<?php else: ?>
    						<td>&nbsp;</td>
    					<?php endif;?>
    				<?php endforeach; ?>
    			</tr>
    		<?php endforeach; ?>
    	</tbody>
    </table>

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 93
    Points : 60
    Points
    60
    Par défaut résolu
    N'êtant pas habitué au foreach, j'ai maitenu mes boucles for et je suis enfin arrivé au résultat que je voulais.


    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
    <table border="1">
    		<tr>
    		<th id="" width="auto">Année</th><?php	
    			for($i=0;$i<count($entete);$i++){ 		 ?>
    		<th align="center" id="" width="auto"><?php echo $entete[$i]['actions_nature'];?></th><?php	
    											    }      ?>
    		</tr>
     
     
    		<tr>
    		<?php
    		for($i=0;$i<count($annee);$i++){ 		 ?>
     
    				<td align="center" id=""><?php echo $annee[$i]['Annee'];?></td> <?php	
     
    				for($k=0;$k<count($entete);$k++){ 		
     
    				?>
    				<td ><?php for($j=0;$j<count($stat1);$j++){if($stat1[$j]['actions_nature']==$entete[$k]['actions_nature'] and $stat1[$j]['Annee']==$annee[$i]['Annee']){ echo $stat1[$k]['NB'];}}?></td><?php	
    													   } 	?>
    		</tr>
    		<?php
    		}   ?>
     
    	</table>

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

Discussions similaires

  1. [GD] Problème de boucle pour redimensionner plusieurs images ...
    Par jimmyneutron dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 10/04/2007, 18h46
  2. Problème de doublons d'affichage dans un Form
    Par Dongosaure dans le forum IHM
    Réponses: 5
    Dernier message: 15/03/2007, 21h19
  3. Réponses: 2
    Dernier message: 06/01/2007, 21h45
  4. Problème de jointure pour affichage "speciale"
    Par webjeux dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/06/2006, 13h23
  5. Réponses: 3
    Dernier message: 11/01/2006, 18h44

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