Faire un tri selectif du resultat

Faire un tri selectif du resultat - PHP - Programmation

Marsh Posté le 28-03-2006 à 18:53:30    

Alors voila j'ai un menu 'Oraux' et un autre menu 'Ecrits'.
 
J'ai des données dans 2 tables 'cat' ( id | nom | description | menu ) et 'rubrik' ( id_rub | id_cat | titre | contenu ), j'aimerai les afficher, en fonction des 2 menus mais je ne sais pas comment m'y prendre enfait.
 
Voici le code PHP que j'ai actuellement  

Code :
  1. <? 
  2. $requete = mysql_query("SELECT DISTINCT t1.id_rub,t1.titre,t1.id_cat,t2.id,t2.nom,t2.menu FROM rubrik As t1 LEFT join cat As t2 On t1.id_cat=t2.id GROUP BY t2.nom ORDER by t1.id_cat" )or die(mysql_error());
  3. while($aff = mysql_fetch_array($requete))
  4. {
  5. echo ("<p>$aff[nom]<br>$aff[titre]<br>" );
  6. }
  7. ?>


 
J'ai pensé à faire 2 requetes, la premiere n'afficherais que celle du menu Oraux et l'autre afficherais l'Ecris, mais lorsque je tente de mettre
 

Code :
  1. When t2.menu = 'Ecrits'


 
Il selectionne bien les données pour le menu 'Ecrits mais comme cela :
 

Citation :

Etude de cas
- Bilan-Diagnostic
 
Etude de cas
- ERAC


 
Je rajoute donc un  
 

Code :
  1. Group By t1.nom


il m'affiche  
 

Citation :

Etude de cas
- ERAC


 
et moi j'aimerai bien arriver à faire ça :
 

Citation :

Etude de cas
- Bilan-Diagnostic
- ERAC


 
Merci de m'eclairer un peu  :)

Message cité 1 fois
Message édité par ludo2604 le 28-03-2006 à 19:10:08

---------------
Make Portraits, Not War!  
Reply

Marsh Posté le 28-03-2006 à 18:53:30   

Reply

Marsh Posté le 28-03-2006 à 19:11:22    

ludo2604 a écrit :

Alors voila j'ai un menu 'Oraux' et un autre menu 'Ecrits'.
 
J'ai des données dans 2 tables 'cat' ( id | nom | description | menu ) et 'rubrik' ( id_rub | id_cat | titre | contenu ), j'aimerai les afficher, en fonction des 2 menus mais je ne sais pas comment m'y prendre enfait.


 
Bon, ce serait bien que tu donnes un extrait du contenu des tables mais je présume que "Etude de cas" est dans la table "cat" et "Diagnostic" et "ERAC" sont dans la table "rubrik".
 
Le pb d'une jointure SQL c'est que tu récupères l'ensemble des colonnes des 2 tables demandées. Ca veut dire que si t'as "n" rubrik pour une cat demandée (et c'est apparemment le cas puisque l'identifiant de "cat" est repris dans "rubrik" ) , tu récupèreras "n" lignes. Et chaque ligne répètera, pour les colonnes prises dans la table "cat", la même info. D'où la répétition de "Etude de cas" pour tes 2 rubriques trouvées.
Bon, je suis pas un champion des requètes SQL mais il me semble qu'un "group by" ne sert que quand on veut compter des infos, info groupées par un certain critère. Dans ton cas, ça te servira à rien.
 
A mon avis, le mieux que tu puisses faire, c'est une boucle sur une première requète ne sélectionnant que les cat qui t'intéressent que tu affiches une par une, et une boucle imbriquée où tu ne sélectionnes et affiches que les rubriques correspondant à la catégorie en cours...


Message édité par Sve@r le 28-03-2006 à 19:18:00

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 28-03-2006 à 19:32:38    

En effet j'ai oublié de préciser
 
Etude de cas // categorie
- Bilan-Diagnostic // rubrique
- ERAC rubrique // rubrique
 
Je vais essayer ce que tu me dis, mais "que les cat qui t'interessent" enfait ça serait bien de toutes les afficher :/


---------------
Make Portraits, Not War!  
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed