Group by ?
Bonsoir,
Voilà j'ai un petit problème car je veux faire le plus simplemetn possible avec les requetes et ne pas utilsier deux requetes alors que je peux le faire en une seule fois..
J'ai une table forums dans laquelle sont regroupés tous les groupes de forums (parent=0) et tous les forums associés (parent=id_du_groupe_de_forum)
Ce que je veux faire c'est ressortir tous les groupes de forums avec leurs forums respectifs.
Dois-je utiliser group by ?
Merci d'avance pour votre aide
Réponse courte : oui
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
J'essaye mais ca ne fonctionne pas car le truc c'est qu'il faut différencier tous les forums qui ont comme valeur parent=0 (ce sont les groupes de forums).
En gros si j'ai le groupe de forum qui a pour id = 2 et donc parent=0, il faut que je recupere tous les forums qui ont pour parent 2.
<select name="id_forum">
<? // Recuperation de tous les forums
$sql_two = "SELECT * FROM ".$GLOBALS["table_salons"]." GROUP BY parent ORDER BY nom";
$query_two = mysql_query($sql_two) or die("Erreur sur $sql_two :<br><br>".mysql_error());
while($data_two = mysql_fetch_array($query_two)){
$value = ($data_two["parent"]==0) ? "value='0'" : "value='".$data_two["id"]."'";
$option = ($data_two["parent"]==0) ? stripslashes($data["nom"]) : "->".stripslashes($data_two["nom"])."";
?>
<option <?=$value;?>><?=$option;?></option>
<? }
echo $sql_two;
?>
</select>
Comment faire ?
Merci d'avance
En fait il faut que tu fasse une jointure sur la table elle même pour réaliser cela
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Dans ce cas je n'utilise plus de group by ?
Je comprends pas trop comment faire une jointure sur la meme table... tu peux m'aider ? :(
En gros voilà ce que donne le rainsonnement juste avec deux requetes, impossibles que je trouve le moyen de le fair à une requete :(
Mon code
Merci quand même
[Message modifié le 05/11/2004 à 23:43 par mojorisin]
[Message modifié le 05/11/2004 à 23:43 par mojorisin]
[Message modifié le 05/11/2004 à 23:45 par XTremTourist]
Ok je voyais pas trop ce que tu souhaitais. En fait il ne te faut pas de clause group by pourfaire cela en une requete.
Requete :
SELECT t1.id,t1.nom,t2.nom AS parent FROM $GLOBALS["table_salons"] AS t1 LEFT JOIN $GLOBALS["table_salons"] AS t2 ON t1.parent=t2.id WHERE t1.parent !=0 ORDER BY t2.nom;
Voila ca te renvoi tout les entrées avec un parent différent de zero, et le nom du parent pour chaque entrée.
Il ne te reste plus qu'a faire l'algo pour la boucle while pour mettre en place le nom du parent dans ta 'select list'
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Lol je dois vraiment etre une merde, je comprends pas du tout comment je peux recuperer via ta requete le nom du parent !?!?
He bien en fait la requete revoie des champs de ce type :
id,nom,parent
ou parent est le nom du parent
donc il te faut un algo dans ta boucle pour savoir si il faut afficher l'option select contenant le nom du parent.
Voila, en espérant avoir été assez clair
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: