Aller au contenu

lister des données sql...


Troll

Sujets conseillés

Salut à tous et à toutes =)

Bon...j'ai beau chercher...j'y arrive pas alors je m'en remets à vos connaissances :whistling:

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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...)"

Lien vers le commentaire
Partager sur d’autres sites

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]'

Lien vers le commentaire
Partager sur d’autres sites

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é :P

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é par Troll
Lien vers le commentaire
Partager sur d’autres sites

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é par lepidosteus
Lien vers le commentaire
Partager sur d’autres sites

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 :P

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...