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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    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
    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
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    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>

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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
    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??

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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
    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

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

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

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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
    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>

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