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 :

Affichage alternée par cellule [MySQL]


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
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut Affichage alternée par cellule
    Bonsoir,

    Je souhaite afficher dans un tableau de 2 colonnes le prénom des filles dans la cellule de gauche et le prénom des garçons dans la cellule de droite.
    En effet ces noms proviennent de ma bdd, que j'extrais avec la requête suivante:
    "select prenom,sexe from user"

    je n'arrive pas à ordonner ces noms en fonction du sexe.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TABLE><TR><TD>Filles</TD><TD>Garçons</TD></TR>
    Pourriez vous m'aider.

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    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
    <?php
    // connexion a la BD
     include("_connexion.php");
    ?>
    <html>
    <head>
    </head>
    <body>
    <?php
    / nom de la table
    $table = 'ma_table';
    // sélectionne toutes les fiches de la table
    $query = "SELECT * FROM ".$table; // A ADAPTER !
    $result = mysql_query($query);
    // couleurs differentes fille/garcon
    $couleurfille = 'style="background-color:#FFECFF;"';
    $couleurgarcon = 'style="background-color:#ECF5FF;"';
    // affichage du tableau
    echo '<table border="1">'."\n";
    	echo '<tr>'."\n";
    		echo '<th '.$couleurfille.'>Filles</th>'."\n";
    		echo '<th '.$couleurgarcon.'>Garçons</th>'."\n";
    	echo '</tr>'."\n";
    // tant qu'il y a des fiches
    while ($val = mysql_fetch_array($result))
    {
    	echo '<tr>'."\n";
    		echo '<td '.$couleurfille.'>'.$val[nomfille].'</td>'."\n";
    		echo '<td '.$couleurgarcon.'>'.$val[nomgarcon].'</td>'."\n";
    	echo '</tr>'."\n";
    }
    echo '</table>'."\n";
    ?>
    </body>
    </html>
    NB: le ."\n"; permet de "passer a la ligne" dans le code source (plus facile a lire)

    [EDIT] : OUPs ! je n'avais pas vu ta requete !
    Il faut d'abord TRIER les filles et les garcons ! ...... je vais voir ca ...
    Dernière modification par Invité ; 29/04/2009 à 01h10.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Une manière de 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
    <?php
    // connexion a la BD
     include("_connexion.php"); ?>
    <html>
    <head>
    </head>
    <body>
    <?php
    // styles differents fille/garcon
    $cellfille = 'style="background-color:#FFECFF; vertical-align:top;"';
    $cellgarcon = 'style="background-color:#ECF5FF; vertical-align:top;"';
    // affichage du tableau
    echo '<table border="1">'."\n";
    	echo '<tr>'."\n";
    		echo '<th '.$cellfille.'>Filles</th>'."\n";
    		echo '<th '.$cellgarcon.'>Garçons</th>'."\n";
    	echo '</tr>'."\n";
    	echo '<tr>'."\n";
    		echo '<td '.$cellfille.'>';
    		// sélectionne tous les FILLES de la table
    		$query_fille = "SELECT * FROM user WHERE sexe='F'"; 
    		$result_fille = mysql_query($query_fille);
    		// affichage des FILLES
    		while ($val_fille = mysql_fetch_array($result_fille)) {
    			echo $val_fille['prenom'].'<br />';
    		}
    		echo '</td>'."\n";
    		echo '<td '.$cellgarcon.'>';
    		// sélectionne tous les GARCONS de la table
    		$query_garcon = "SELECT * FROM user WHERE sexe='M'"; 
    		$result_garcon = mysql_query($query_garcon);
    		// affichage des garconS
    		while ($val_garcon = mysql_fetch_array($result_garcon)) {
    			echo $val_garcon['prenom'].'<br />';
    		}
    		echo '</td>'."\n";
    	echo '</tr>';
    }
    echo '</table>';
    ?>
    </body>
    </html>
    <?php
    // deconnexion de la BD
    mysql_close(); ?>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Merci pour cette solution, je n'y avais pas pensé.

    Pour compliquer ma tâche, j'ai des user qui ont des noms de famille commun dans cette liste, finalement je voudrais les afficher sur la même ligne dans des colonnes différentes, ceux qui n'ont pas d'homonymes auront une case vide en face.
    ça devrait donné ça en html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <TABLE>
    <TR><TD>Filles</TD><TD>garçons</TD></TR>
    <TR><TD><Durand Nolan</TD><TD>Durand John</TD></TR>
    <TR><TD></TD><TD>Dupont Jean</TD></TR>
    <TR><TD>Gomez Anna</TD><TD></TD></TR>
    <TR><TD>Louis Alice</TD><TD>Louis johann</TR>
    <TABLE>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Finalenment, j'ai trouvé une solution plutot 'crade' mais bon ça fonctionne. J'optimiserai le code plus tard.

    je me suis aidé de ma requete en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select nm_user,prenom_user, count(*) from user group by nom_user
     
    dans mon code php
     
    si count(*)=2, affichage <TR><TD>$nom.$prenom</TD><TD>$nom.$prenom</TD></TR>
     
    si count(*)=1 et sexe='fille'
    <TR><TD>$nom.$prenom</TD><TD></TD></TR>
     
    si count(*)=1 et sexe='garçon'
    <TR><TD></TD><TD>$nom.$prenom</TD></TR>

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

Discussions similaires

  1. [eZ Publish] Affichage par cellule défini dans une table
    Par lordlifen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 28/06/2010, 18h03
  2. Réponses: 2
    Dernier message: 16/02/2006, 22h20
  3. affichage colonne par colonne
    Par tjoce dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2005, 18h19
  4. Affichage d'une cellule excel
    Par cciocc dans le forum ASP
    Réponses: 2
    Dernier message: 17/05/2005, 10h17
  5. [JTable] Personnaliser le tooltip par cellule
    Par bibx dans le forum Composants
    Réponses: 3
    Dernier message: 10/02/2005, 17h54

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