C'est bien ce je pensais : $liste_option est vide. :cry:
vérifie que tu n'as pas fait une faute de frappe dans son nom quelque part et que remplit bien la variable avant de construire la requete sql.
Version imprimable
C'est bien ce je pensais : $liste_option est vide. :cry:
vérifie que tu n'as pas fait une faute de frappe dans son nom quelque part et que remplit bien la variable avant de construire la requete sql.
hop hop hop hop , je retire le precedent post sabotage
les choses on l'air d'avoir changer ta raison il y avais un probleme au niveau de
$liste_option
je vois comment ca tourne est reviens
quand je demande les auto avec option airbag il me sort bien celle
qui l'on
quand je demande les auto avec option airbag et toit ouvrant si aucune auto a les deux il ne sort rien
quand je ne coche aucun option la j'ai sa qui sort
aller histoire de savoir si j'ai apris quelque choseCode:
1
2
3
4 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') GROUP BY id_auto HAVING COUNT(id_auto) = 0)' at line 2
je crois qu'il doit manquer un if au condition de recherche en gros
les conditions sont obligatoire si et seulement si elle sont demander !!!
ou alors if (empty($liste_option))
Ba oui c'est ce que tu m'avais demandé.Code:quand je demande les auto avec option airbag et toit ouvrant si aucune auto a les deux il ne sort rien
Tu peux sinon classer par nombre d'options correspondant aux criteres :
Effectivement il faut gérer le cas ou aucune option n'est demandé.Code:
1
2
3 $sql = "SELECT * FROM automobile where marque='$marque' and ".implode ("AND",$where) . " AND id IN (SELECT id_auto from options WHERE option_auto IN (" . $liste_option . ") GROUP BY id_auto ORDER BY COUNT(id_auto) . ")" ;
je te confirme sabotage c'est bien ce que j'avais demander
tout est ok sauf le cas ou aucun option est demande
Tu peux faire un truc comme ca :
Code:
1
2
3
4
5
6 $sql = "SELECT * FROM automobile where marque='$marque' and ".implode ("AND",$where); if ($liste_option) { $sql .= " AND id IN (SELECT id_auto from options WHERE option_auto IN (" . $liste_option . ") GROUP BY id_auto ORDER BY COUNT(id_auto) . ")" ; }
si je vire cette partie de code cela fonctionne de facon parfaite a quoi sert-elle ??
Code:GROUP BY id_auto ORDER BY COUNT(id_auto) . "
Le GROUP BY servait effectivement quand il y avait le HAVING.
Le ORDER BY sert a classer tes resultats par nombre de criteres correspondant.
merci Beaucoup Sabotage de ton aide je serai surement de retour bientot avec de nouvelle epine
A++