Troll Posté 6 Janvier 2007 Posté 6 Janvier 2007 Salut à tous et à toutes =) Bon...j'ai beau chercher...j'y arrive pas alors je m'en remets à vos connaissances Je m'explique : J'ai une bdd (extraordinaire) et à l'intérieur...une table! (de plus en plus extraordinaire), et cetet table contient des "articles" qui ont chacun attaché un "genre" (ou "catégorie" si vous voulez) afin de pouvoir les classer par groupe. Mon but était de lister sur une page tous les titres des articles(leur lien en fait...mais c'est compliqué). Ca c'est bon ca marchait. Mais maintenant, je voudrais les lister en les classant par "genre", donc en cherchant les différents genres des articles dans la bdd, et en affichant sous chaque genre les articles en rapport. (je ne les écris pas manuellement, car de nouveaux peuvent apparaitre, do'ù l'intérêt de chercher les différents genre dans la bdd, puis d'ensuite les lister avec les articles qui leurs sont associés). Vous me suivez ? Bon =) Pour l'instant j'étais parti sur ça : mysql_connect('***','***','***'); mysql_select_db("***"); $sql_genre = mysql_query("SELECT genre FROM `pc-info_tutoriaux` ")or die(mysql_error()); mysql_close(); while($arr = mysql_fetch_array($sql_genre)) { echo '<h5>'.$arr.'</h5>'; mysql_connect('***','***','***'); mysql_select_db("***"); $donnees_sql = mysql_query(" SELECT * FROM `pc-info_tutoriaux` WHERE genre='$arr' ") or die(mysql_error()); mysql_close(); while($donnees = mysql_fetch_array($donnees_sql)) { echo '<div class="tutoriaux"><p><a href="index.php?p=tutos&id='.$value['id'].'">'.$value['titre'].'</a></p></div>'; } Mais de toute évidence ça ne marche pas, non seulement parce-que tout ce que ca me renvoit c'est "array" mais aussi parce-qu'en faisant comme ca...je vais avoir plusieurs fois le même genre dans mon array...et donc afficher plusieurs fois les listes des articles y correpondant... So...help me please Merci d'avance
Vincent Posté 6 Janvier 2007 Posté 6 Janvier 2007 sur ta premiere requete, tu veux la liste exhaistive des genres mais de manière unique? alors rajoutes "DISTINCT" qui va te supprimer les doublons quand tu cherches 1 seul champs en résultat. SELECT DISTINCT genre FROM pc-info_tutoriaux
Troll Posté 6 Janvier 2007 Auteur Posté 6 Janvier 2007 sur ta premiere requete, tu veux la liste exhaistive des genres mais de manière unique? alors rajoutes "DISTINCT" qui va te supprimer les doublons quand tu cherches 1 seul champs en résultat. SELECT DISTINCT genre FROM `pc<span style='color:orange'>-info_tutoriaux' tiens, y'a un bout de css qui traine dans ta requête.... J'essaie et je te dis ça =) Essai effectué : bah, de toutes évidence les doublons ont en effet disparu...mais tout ce qui apparait c'est toujours "array array array(etc etc...)"
Vincent Posté 6 Janvier 2007 Posté 6 Janvier 2007 C'est drole le bug du css, j'ai essayé de l'enlever, mais j'ai pas réussi ! Pour la 2e requete, il faut préciser quel element du tableau tu veux selectionner : SELECT * FROM `pc-info_tutoriaux` WHERE genre='$arr[0]'
Troll Posté 7 Janvier 2007 Auteur Posté 7 Janvier 2007 (modifié) C'est drole le bug du css, j'ai essayé de l'enlever, mais j'ai pas réussi ! Pour la 2e requete, il faut préciser quel element du tableau tu veux selectionner : SELECT * FROM `pc<span style='color:orange'><span style='color:orange'><span style='color:orange'><span style='color:orange'><span style='color:orange'><span style='color:orange'><span style='color:orange'>-info_tutoriaux` WHERE genre='$arr[0]' Ok...mais comme le tableau ne récupere que "genre", je me suis dit qu'il ne contenait qu'une donnée...m'enfin bref j'ai buggué Le bug du css vient du site en fait C'est parce-que la balise s'arrette au ' car il y a un autre ' avant...du coup ce qui est apres est sectioné...'fin bref c'est plus une balise Je test et te dit si ca marche ;-) edit : donc, apres m'être battu avec mysql qui voulait pas de '$arr[0]' dans la requete etc...voici le code qui fonctionne (ca peut servir a d'autres ) : mysql_connect('***','***','***'); mysql_select_db("***"); $sql_genre = mysql_query("SELECT DISTINCT genre FROM `pc-info_tutoriaux` ")or die(mysql_error()); mysql_close(); while($arr = mysql_fetch_array($sql_genre)) { echo '<h5>'.$arr[0].'</h5>'; mysql_connect('***','***','***'); mysql_select_db("***"); $varr = addslashes($arr[0]); $donnees_sql = mysql_query(" SELECT * FROM `pc-info_tutoriaux` WHERE genre='$varr' ") or die(mysql_error()); mysql_close(); while($value = mysql_fetch_array($donnees_sql)) { echo '<div class="tutoriaux"><p><a href="index.php?p=tutos&id='.$value['id'].'">'.$value['titre'].'</a></p></div>'; } } Voilà, merci bien à toi ;-) Modifié 7 Janvier 2007 par Troll
lepidosteus Posté 7 Janvier 2007 Posté 7 Janvier 2007 (modifié) Pour info tu peux obtenir le même résultat en une seule query en elevant le distinct et en faisant un "ORDER BY genre", puis en bouclant simplement sur le fetch_array (quand "genre" change dans l'array par rapport à l'array précédent, alors tu met le code qui sépare deux genres). Modifié 7 Janvier 2007 par lepidosteus
Troll Posté 7 Janvier 2007 Auteur Posté 7 Janvier 2007 Pour info tu peux obtenir le même résultat en une seule query en elevant le distinct et en faisant un "ORDER BY genre", puis en bouclant simplement sur le fetch_array (quand "genre" change dans l'array par rapport à l'array précédent, alors tu met le code qui sépare deux genres). Ok je note =) Mais maintenant je vais pas tout recommencer
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant