Trie SQL , affichage par critere

NoWayHome

WRInaute discret
Bonjour .

Je n'arrive pas a réaliser un truc tout bete ... J'espere que vous pourrez m'aider .

J'ai deux tables , marque et modele.

j'aimerais faire un affichage par marque du style :

Code:
+ Marque 1
 - Modele 1
 - Modele 2
 - Modele 3

+ Marque 2
 - Modele 4
 - Modele 5

+ Marque 3
 - Modele 6

Hors tout ce que je sais faire c'est un tableau par jointure.

Code:
$sql = "SELECT marque.nom, modele.nom AS nomb FROM tbmarque, tbmodele WHERE marque.did = modele.eid";

// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$data = mysql_fetch_assoc($req);

echo $data['nom']; 

while($data = mysql_fetch_assoc($req)) 
{
echo '<br/>';
echo $data['nom']; 
echo '<br/>';
echo $data['nomb']; 
echo '<br/>';
}


Evidemment cela n'affiche pas comme je le souhaite. Puisque ça affiche
Marque1.
Modele 1
Marque 1
Modele 2
..
Marque3
Modele 6

Comment faire ??

Merci
 

jcaron

WRInaute accro
Tu ajoutes une variable $derniere_marque. Dans la boucle, tu vérifies si la marque est la même que derniere_marque ou pas. Si oui, tu affiches juste le modèle. Sinon, tu affiches la nouvelle marque, et tu la stockes dans derniere_marque.

Bref, ce n'est pas tellement du SQL mais plutôt du PHP...

L'autre option consiste à faire deux boucles imbriquées (liste des marques, et pour chaque marque, liste des modèles), mais ce sera en général moins efficace.

Jacques.
 

Discussions similaires

Haut