Simplifier requête SQL

Résolu/Fermé
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014 - Modifié par Solar13 le 10/11/2011 à 10:47
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014 - 10 nov. 2011 à 11:15
Bonjour à vous,

J'ai une liste de catégories dans une bdd.
J'ai besoin de récupérer ces catégories pour les afficher dans un menu dynamique.
Jusque là tout baigne. ( Galerie2 ou galerie3 )

Mon soucis, c'est que j'ai besoin de récupérer le champ type pour envoyer mon utilisateur sur une page différente selon le type récupérer.

$sql_cat = "SELECT ID_categorie, nom_categorie, type 
         FROM categories 
   WHERE type = 'Classique' 
   ORDER BY ID_categorie"; 

$sql_cat2 = "SELECT ID_categorie, nom_categorie, type 
         FROM categories 
   WHERE type = 'Expert' 
   ORDER BY ID_categorie"; 
    
$req_cat = mysql_query($sql_cat) or die('Erreur SQL !<br />'.$sql_cat.'<br />'.mysql_error()); 
$req_cat2 = mysql_query($sql_cat2) or die('Erreur SQL !<br />'.$sql_cat2.'<br />'.mysql_error());  

while($data_cat = mysql_fetch_array($req_cat)) 
 { 
 echo '<div id="categorie">'.'<a href="galerie2.php?ID_categorie='.$data_cat['ID_categorie'].'">'. 
$data_cat['nom_categorie'].'</a>'; 
while($data_cat2 = mysql_fetch_array($req_cat2)) 
 echo '<div id="categorie2">'.'<a href="galerie3.php?ID_categorie='.$data_cat2['ID_categorie'].'">'. 
$data_cat2['nom_categorie'].'</a>'; 


Mon soucis avec ce truc farfelu, c'est que je ne peux plus trier le tout par id vu que les deux types sont réparés.

Il y a moyen de simplifier tout ça pour pouvoir faire le même traitement ?

2 réponses

jojo673 Messages postés 210 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 9 avril 2014 44
10 nov. 2011 à 10:50
Bien sûr avec une seule requête :
$sql_cat = "SELECT ID_categorie, nom_categorie, type
FROM categories
WHERE type = 'Classique'
OR type = 'Expert'
ORDER BY ID_categorie";
0
jojo673 Messages postés 210 Date d'inscription lundi 19 septembre 2011 Statut Membre Dernière intervention 9 avril 2014 44
10 nov. 2011 à 10:53
Après si galerie2 et galerie3 correspondent à un seul type, tu peux faire dans la boucle :
SI type = Classique
ALORS url = galerie2
SINON SI type = Expert
ALORS url = galerie3

Quelque chose comme ça :)
0
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014
10 nov. 2011 à 11:15
Super, merci !
0