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 :

Tableau deux while


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut Tableau deux while
    Bonjour/soir,
    Je viens vers vous car je suis bloqué depuis quelques jours sur un problème, dont je n'arrive pas à trouver la solution sur le net.
    En faite je cherche a faire un tableau de ce type via une requête sql.

    --Titre1---Titre2----Titre3--------l
    l l vert clair l
    l vert l vert primaire l
    Couleur l l vert foncé l
    --------------------------l
    l bleu l bleu ciel l
    ------------------------------------l
    pour sa j'ai fait:
    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
     
    	<table bgcolor="#BABABA" bordercolor="#FFFFFF" border="1" style="font-size:12px" align="center">';
    		<tr>
                            <th align="center">Titre1</th>
    			<th align="center">Titre2</th>
    			<th align="center">Titre3</th>
    		</tr>
    <?php
    if (mysql_num_rows($sql)>0) {
    $sql=select organe, count(*) as NBR_ALARME....
    			echo'<tr>';
    			echo '<td '.$td1.' align="center">Alarme</td>';
    while($row=mysql_fetch_array($sql)
    {
    echo '<tr>';	
    		echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'">'.$row['NBR_ALARME'].'</td>';
    		echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'">'.$row['organe'].'</td>';
    echo'</tr>';
    		}
    		echo'</tr>';
    }
    echo'</table>';

  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
    Et quel est ton problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut
    Tous s'aligne horizontalement

  4. #4
    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
    Tu n'as pas le meme nombre de th/td dans toutes les lignes.
    - 3 th dans la premiere ligne
    - 1 td dans la deuxieme
    - 2 td dans la boucle

    de plus ta ligne ligne s'ouvre avant la boucle et tu la refermes après...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut
    Les 3 th du début sont pour les titres du tableau.
    Le 1er td pour la cellule de gauche
    Deux td dans la boucle pour les cases a droite de la cellule de gauche (1titre)
    Pour les tr normal.
    Dans ma ligne j'ai 1 titre de ligne(couleur), après deuxième colonne (vert) qui devrait avoir un rowspan a 3 pour cette requete, trois colonne ( trois couleurs de vert different)

  6. #6
    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 1er td pour la cellule de gauche
    Deux td dans la boucle pour les cases a droite de la cellule de gauche (1titre)
    sauf que les a mis dans des <tr> différents
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut
    En enlevant les deux tr du milieu c'est pareil

  8. #8
    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
    Reflechis au code HTML que tu souhaites obtenir mais n'ajoute/enleve pas des éléments au petit bonheur la chance.
    Quand tu auras écris le code HTML qui fonctionne, il sera facile d'écrire le code PHP qui va le générer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut
    En html sa donne sa, mais pour faire une requête comme là, c'est la que je me melange avec tous les tr et td a mon avis
    Code html : 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
    <table width="100%" border="1">
      <tr>
        <th>titre 1</th>
        <th>titre 2</th>
        <th>titre 3</th>
      </tr>
      <tr>
        <th rowspan="5">Couleur</th>
        <td rowspan="3">Vert</td>
        <td>vert clair</td>
      </tr>
      <tr>
        <td>vert primaire</td>
      </tr>
      <tr>
        <td>vert foncé</td>
      </tr>
      <tr>
        <td>bleu</td>
        <td>bleu foncé</td>
      </tr>
    </table>

  10. #10
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'">'.$row['NBR_ALARME'].'</td>';
    // LE $td c'est quoir au juste??
    .
    . . Savoir, savoir faire, faire , faire savoir...

  11. #11
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    essaies ce code mais attention à la remarque où j'ai précisé que tu devras connaitres la somme total des count(*) que tu fais:

    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
     
    <table bgcolor="#BABABA" bordercolor="#FFFFFF" border="1" style="font-size:12px" align="center">
    		<tr>
                            <th align="center">Titre1</th>
    			<th align="center">Titre2</th>
    			<th align="center">Titre3</th>
    		</tr>
    <?php
    if (mysql_num_rows($sql)>0) {
    $sql="select organe, count(*) as NBR_ALARME....";
    /* ici tu auras besoin de connaitre la somme de toutes les NBR_ALARME, la totalité je veux dire qu'on nommera $total_alarmes
    donc il est préférable que tu calcules d'abord la somme de tes count(*) antérieurement dans une autre boucle
    */
    			echo'<tr>';
    			echo '<td '.$td1.' align="center" rowspan="'.$total_alarmes.'">Alarme</td>';
    			$compteur=1;
    while($row=mysql_fetch_array($sql))
    {
    if ($compteur=='1'){
    	echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'">'.$row['NBR_ALARME'].'</td>';
    	echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME']-1.'">'.$row['organe'].'</td>';
    	echo '</tr>';
    	for ($i=1;$i<$row['NBR_ALARME'];$i++){
    	echo '<tr>';
    		echo '<td '.$td.' align="center">'.$row['organe'].'</td>';
    		echo'</tr>';
    	}
    }else{
    	echo '<tr>';	
    		echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'">'.$row['NBR_ALARME'].'</td>';
    		//echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME']-1.'">'.$row['organe'].'</td>';
    echo'</tr>';
    for ($i=1;$i<$row['NBR_ALARME'];$i++){
    	echo '<tr>';
    		echo '<td '.$td.' align="center">'.$row['organe'].'</td>';
    		echo'</tr>';
    	}
    }
     
    $compteur++
    		}
     
    }
     
    ?>
    </table>
    je viens de commenter un echo de trop
    .
    . . Savoir, savoir faire, faire , faire savoir...

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Points : 7
    Points
    7
    Par défaut
    Je commence à comprendre la philosophie du truc.
    Par contre j'ai une erreur sur le $compteur++, il faut rajouter le ; ?

  13. #13
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    oui tout a fait et en plus il y'a d'autres retouches, voici le code qui devrais marcher, à toi de méditer là dessus.

    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
    54
    55
    56
    57
    58
    59
     
    <table bgcolor="#BABABA" bordercolor="#FFFFFF" border="1" style="font-size:12px" align="center">
    		<tr>
                            <th align="center">Titre1</th>
    			<th align="center">Titre2</th>
    			<th align="center">Titre3</th>
    		</tr>
    <?php
    mysql_connect('', 'root', '');
    $sql1=mysql_query("select XXX AS organe, count(YYY) AS NBR_ALARME  from TA_TABLE where condition  group by XXX");
    while($row=mysql_fetch_array($sql1))
    {
    $total_alarmes+=$row['NBR_ALARME'];
    }
     
    $sql=mysql_query("select XXX AS organe, count(YYY) AS NBR_ALARME  from TA_TABLE where condition  group by XXX");
     
    if (mysql_num_rows($sql1)>0) {
     
    /* ici tu auras besoin de connaitre la somme de toutes les NBR_ALARME, la totalité je veux dire qu'on nommera $total_alarmes
    donc il est préférable que tu calcules d'abord la somme de tes count(*) antérieurement dans une autre boucle
    */
    			echo'<tr>';
    			echo '<td '.$td1.' align="center" rowspan="'.($total_alarmes+mysql_num_rows($sql1)).'">Alarme</td>';
    			// une retouche au niveau du rowspan total
    			$compteur=1;
    while($row=mysql_fetch_array($sql))
    {
    if ($compteur=='1'){
    	echo '<td '.$td.' align="center" rowspan="'.$row['NBR_ALARME'].'"><font color="red">'.$row['NBR_ALARME'].'</font></td>';
    	echo '<td '.$td.' align="center" rowspan="'.($row['NBR_ALARME']-1).'">'.$row['organe'].'</td>';
    	echo '</tr>';
    	for ($i=1;$i<$row['NBR_ALARME'];$i++){
    	echo '<tr>';
    		echo '<td '.$td.' align="center">'.$row['organe'].'</td>';
    		echo'</tr>';
    	}
    }else{
    	echo '<tr>';	
    		echo '<td '.$td.' align="center" rowspan="'.($row['NBR_ALARME']+1).'"><font color="red">'.$row['NBR_ALARME'].'</font></td>';
    		//echo '<td '.$td.' align="center" rowspan="'.($row['NBR_ALARME']-1).'"><font color="blue">'.$row['organe'].'</font></td>';
    		// ici également une autre retouche car cette ligne ci haut est en plus
    echo'</tr>';
    for ($i=1;$i<=$row['NBR_ALARME'];$i++){
    	echo '<tr>';
    		echo '<td '.$td.' align="center">'.$row['organe'].'</td>';
    		echo'</tr>';
    	}
    }	
    $compteur++	;
    }
     
     
     
     
    }
     
    ?>
    </table>
    .
    . . Savoir, savoir faire, faire , faire savoir...

  14. #14
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Sabotage, Mandrake, deux écoles...
    Le premier essaie de guider par étape pour que le demandeur apprenne en faisant, le second donne tout tout cuit style http://jefaistesdevoirs.org
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  15. #15
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    Sabotage, Mandrake, deux écoles...
    Le premier essaie de guider par étape pour que le demandeur apprenne en faisant, le second donne tout tout cuit style http://jefaistesdevoirs.org
    absolument pas Dendrite, il a essayé un code qui ne donnait rien, mais il m'était difficile de lui expliquer qu'il lui fallait créer ses balise en boucle et compteur, d'ailleurs ce n'est que le début du pallier il devrait s'en inspirer et méditer dessus comme je l'ai indiqué.

    Mon approche était juste de lui montrer l'architecture par plus après il devra se débrouiller pour construire le reste de son tableau.
    .
    . . Savoir, savoir faire, faire , faire savoir...

  16. #16
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Je viens seulement de lire cela, pardon pour ma pique un peu bête, Mandrake.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 14h27
  2. Affichage d'un tableau à deux dimensions.
    Par Allan dans le forum C
    Réponses: 3
    Dernier message: 11/12/2005, 18h29
  3. Réponses: 1
    Dernier message: 18/11/2005, 11h38
  4. tri alphabétique dans un tableau deux dimensions
    Par *!!cocco!!* dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 06/12/2004, 21h38
  5. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50

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