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 :

[Tableaux]] Créer un tableau bien défini à partir des résultats d'1 requette mysql


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 16
    Points
    16
    Par défaut [Tableaux]] Créer un tableau bien défini à partir des résultats d'1 requette mysql
    Salut,

    J'ai une table de 17 catégories chacune contenant plusieurs sous catégories et j'aimerais afficher le tout dans un tableau (<table></table>).
    Le tableau doit contenir 3 colonnes et 6 lignes.
    Chaque cellule doit afficher une catégorie ainsi que ses 8 premiéres sous catégories.
    Comment puis je faire pour creer ce tableau à partir de ca:
    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
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("articles");
     
    $donnees = mysql_query("SELECT * FROM categories WHERE idParent = 0");
    while ($resultat = mysql_fetch_assoc($donnees))
    {
    	echo '<strong>'.$resultat['libelle'].'</strong><br />';
    	$donnees1 = mysql_query("SELECT * FROM categories WHERE idParent =".$resultat['idcat']." LIMIT 0,8" ); 
    	while ($resultat1 = mysql_fetch_assoc($donnees1))
    	{
    		echo $resultat1['libelle'].', ';
    	}
    	echo'plus...<br />';
    }
    ?>
    Ma table categories est sous cette forme:
    idCat INT(7) NOT NULL PRIMARY KEY
    idParent INT(7) NOT NULL
    libelle VARCHAR(100) NOT NULL

    Merci de bien vouloir m'éclairer.

    @+

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    Ben... tu l'as déjà ton tableau, je comprend pas...

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Non, mon script affiche mes catégories et sous catégories que sous cette forme (une en dessous de l'autre):

    Affaires
    Faillite, Administration, Relations client, Financement, Entreprises, Etude de marché, Vente, Association et JV, plus...
    Art et Culture
    Architecture, Archives, Artisanat, Artistes, Arts appliqués, Arts du spectacle, Arts plastiques, Associations, plus...
    Communication
    Email, GPS, Medias, Messagerie Instantanée, SMS, Téléphonie mobile, Visioconférence, plus...
    ...
    Alors que j'aimerais mettre tout ca dans un tableau.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il vous suffit de placer les différents éléments du code HTML du tableau à générer au bon endroit :
    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
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("articles");
     
    $donnees = mysql_query("SELECT * FROM categories WHERE idParent = 0");
    echo '<table>';
    while ($resultat = mysql_fetch_assoc($donnees))
    {
    	echo '<tr><td colspan="9">'.$resultat['libelle'].'</td></tr><tr>';
    	$donnees1 = mysql_query("SELECT * FROM categories WHERE idParent =".$resultat['idcat']." LIMIT 0,8" ); 
    	while ($resultat1 = mysql_fetch_assoc($donnees1))
    	{
    		echo '<td>' . $resultat1['libelle'] . '</td>';
    	}
    	echo '<td>plus...</td></tr>';
    }
    echo '</table>';
    ?>
    Ce n'est peut être pas exactement ce que vous vouliez parce que je n'ai pas compris comment vous vouliez précisément organiser ce tableau.

    En espérant ne pas avoir de nouveau fait des âneries ...

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Désolé, c'est vrai que je me suis un peu emporté. seulement je n'ai étais désobligeant envers personne.
    C'est juste que je travail sur ce script depuis longtemps et comme je suis novice, quand ca bloque je ne peux pas passer à autre chose. J'espére que vous comprennez.
    Sinon pour votre code, ce n'est pas ce que désirais, cependant de mon coté j'ai bricoller quelque chose qui fonctionne et j'aimerais avoir votre avis dessus et savoir s'il y a moyen de faire plus simple.
    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
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("articles");
     
    $donnees = mysql_query("SELECT * FROM categories WHERE idParent = 0");
     
    ?>
    <table border="0" align="top">
    <?php
    $i = 1;
    function debutdeligne($i)
    {
    	if ( $i == 1 OR $i == 4 OR $i == 7 OR $i == 10 OR $i == 13 OR $i == 16 OR $i == 19 OR $i == 22 OR $i == 26 )
    	{	
    		echo '<tr>';
    	}
    }
    function findeligne($i)
    {	
    	if ( $i == 3 OR $i == 6 OR $i == 9 OR $i == 12 OR $i == 15 OR $i == 18 OR $i == 21 OR $i == 25 OR $i == 28 )
    	{	
    		echo '</tr>';
    	}
    }
     
    	while ($resultat = mysql_fetch_assoc($donnees))
    	{
    		debutdeligne($i);
    		echo '<td><strong><a href=""'.$resultat['libelle'].'</strong><br />';
     
    		$donnees1 = mysql_query("SELECT * FROM categories WHERE idParent =".$resultat['idcat']." LIMIT 0,5" ); 
    		while ($resultat1 = mysql_fetch_assoc($donnees1))
    		{
    			echo $resultat1['libelle'].', ';
    		}
    		echo'plus...<br /></td>';
    		findeligne($i);
    		$i++;
    	}
     
    ?>
    </table>
    Merci pour votre aide et désolé encore une fois.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par vincent.b
    savoir s'il y a moyen de faire plus simple
    Sur un script aussi court on peut faire peu de choses :

    Mais comme je le disais ça s'apparente plus à des détails.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup. J'en prends note.

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

Discussions similaires

  1. [XL-2003] Créer un tableau croisé dynamique à partir de 2 tableaux
    Par Peanut dans le forum Excel
    Réponses: 5
    Dernier message: 01/12/2010, 11h27
  2. [Tableaux] créer un tableau à partir de deux autres
    Par spaukensen dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 17h22
  3. Réponses: 2
    Dernier message: 21/03/2008, 16h41
  4. [Tableaux] créer un tableau multidimension
    Par zimotep dans le forum Langage
    Réponses: 2
    Dernier message: 18/03/2006, 18h18
  5. [Info]Créer un tableau de String à partir d'autres String
    Par Nasky dans le forum Collection et Stream
    Réponses: 21
    Dernier message: 06/07/2005, 12h46

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