Trie SQL , affichage par critere

NoWayHome
WRInaute discret
WRInaute discret
 
Messages: 67
Inscription: 25 Avr 2006

Trie SQL , affichage par critere

Message le Dim Oct 30, 2011 18:42

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: Tout sélectionner
+ 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: Tout sélectionner
$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
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: Trie SQL , affichage par critere

Message le Lun Oct 31, 2011 11:13

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.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités