Encore plus délicate php/sql

Fermé
Rémy - 21 sept. 2006 à 11:02
 Corni - 21 sept. 2006 à 11:42
re-Bonjour

Problème : je réalise une liste de véhicule provenant d'une base de données. quelques colonnes : référence, marque, prix,photos...

J'aimerais que lorsque l'utilisateur clic sur marque, la liste se rafraichit et classe les véhicules dans l'ordre alphabétique des marque.

Oui, mais voila : les marque sont repérées par des numéros correspondant aux libellés des marques dans une autre table.

Je ne sais pas comment m'y prendre !!

Ca se joue au niveau du ORDER BY mais faut-il créer une vue ou qqch de ce genre ?

Merci de m'aider
A voir également:

1 réponse

Ok j'essaie de piger:
tu as une table, disons table1, avec référence, marque (cle externe), prix etc... et un table, disons table2, avec les marques.

La requete suivante selectionne tous les enregistrements de la table1, mais uniquement les enregistrement de la table2 qui correspondent.

SELECT t1.*, t2.*
FROM table1
LEFT JOIN table2 ON t1.ex_id_marque=t2.id_marque


ou ex_id_marque est ta clé externe dans la table1, et id_marque serait la clé primaire de la table2.

Donc, lorsque tu clique sur le lien d'une marque, lien qui a surement un parametre du genre ?id_marque=2, te refais ta requete comme suit:

SELECT t1.*, t2.*
FROM table1
LEFT JOIN table2 ON t1.ex_id_marque=t2.id_marque
WHERE t1.ex_id_marque='".$_GET['id_marque']."'
ORDER BY t2.marque ASC


Ce qui pourrait donner en php:

if (isset($_GET['id_marque']) && $_GET['id_marque'] > 0) {
    $sql = "SELECT t1.*, t2.*
            FROM table1
            LEFT JOIN table2 ON t1.ex_id_marque=t2.id_marque
            WHERE t1.ex_id_marque='".$_GET['id_marque']."'
            ORDER BY t2.marque ASC";
    $res = mysql_query($sql) or die (mysql_error());
    while($record = mysql_fetch_array($res)) {
        ....
    }
}


Est-ce que ça t'aide ?
Tchaô
0