regroupement de marque

old
Invité n'ayant pas de compte PHPfrance

06 juil. 2005, 15:18

salut tout le monde :) j'ai une base de donnée dans laquelle je possède une table produit ou je stocke les caractéristiques de mes produits... jusque là aucun soucis seleuement mes produits sont d'une certaine marque et j'aimerais pouvoir afficher mes produits par marque

exemple :

MSI
geforce 5700
geforce 5900

ATI
radeon 9700
radeon 9800

HERCULES
etc etc

c'est un problème d'algorithmique que je n'arrive pas à résoudre :(

un TQ marque_nom = ancienne_marque_nom marcherait mais je n'arrive à représenter ça correctement !

merci pour votre aide !

Mammouth du PHP | 1353 Messages

06 juil. 2005, 15:22

Comment est faite la base ?

Le nom est il a part dans un champ ?

Si oui il te suffit de faire une requete ou tu mets "SELECT * FROM mabase where marque="MSI" " par exemple et ca marche.

Il nous faut plus de précisions je pense.

Administrateur PHPfrance
Administrateur PHPfrance | 430 Messages

06 juil. 2005, 15:24

c'est simple, dans le sql tu met "ORDER BY marque"
puis dans le code php tu détecte le changement de groupe comme ca :
$marque='';
while($row=mysql_fetch...){
if($row['marque']!=$marque){
  $marque=$row['marque'];
  //changement de groupe
}
...
Modifié en dernier par cerber le 06 juil. 2005, 15:25, modifié 1 fois.
"... demanda à voir le CV du recruteur pour être sûr que le chef du personnel était compétent".

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

06 juil. 2005, 15:24

Regarde dans la doc MySQL la clause GROUP BY
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 juil. 2005, 15:25

C'est à cela que sert la clause ORDER BY

http://www.nexen.net/docs/mysql/annotee ... n=order+by

old
Invité n'ayant pas de compte PHPfrance

06 juil. 2005, 15:26

salut !

alors dans ma table produit j'ai un id prod, et un id_marque le reste c'est pour les caractéritique du produit donc rien d'intéréssant dans notre cas...

pour afficher tous mes produits exemple carte graphique j'effectue cette requete :
"SELECT * FROM produit,souscategorie,marque WHERE produit.sscat_id = souscategorie.sscat_id AND produit.mar_id = marque.mar_id AND sscat_nom='$souscategorie'"

je récupère ainsi le nom de la marque

tu penses que je devrait faire une requete avec le nom de la marque qui changerait à chaque fois... hmm je pensais qu'il y aurait eu possibilité de faire ça avec une boucle par exemple ...

old
Invité n'ayant pas de compte PHPfrance

06 juil. 2005, 15:27

group by order by connait très bien ;) je l'avais mis au début mais je voyais plus comment détecter le changement en fait :) vous m'avez éclairé je vais essayé merci !

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

06 juil. 2005, 15:32

Et ORDER BY marque ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.