Recherche dans la base de donnée selon les checkbox coché

cs_hassane86 Messages postés 54 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 2 août 2012 - 21 juil. 2010 à 17:43
cs_Seby63 Messages postés 8 Date d'inscription dimanche 25 juillet 2010 Statut Membre Dernière intervention 12 août 2010 - 28 juil. 2010 à 16:02
Bonjour,
je suis entrain de crée un site intranet, et je bloque sur un problème de faire une recherche dans la base de donnée selon les checkbox coché, c a d les valeurs des checkbox ils seront comme critère de recherche.
voila la parti de mon code ou y a le problème :

Code php:
$result"SELECT vehicule.type, constructeur.nom FROM `vehicule`, `constructeur` WHERE vehicule.id constructeur.id";

if (isset($_POST['mercedess']) ) {
$result ." AND ( type 'mercedess' ";
}
if (isset($_POST['BMW']) ) {
$result ." and type 'BMW'";
}
if (isset($_POST['Renault']) ) {
$result ." AND type 'Renault'";
}

code HTML :
mercedess
BMW

Renault


en faite le problème est quand je choisi le 1er de la liste(meredess) la y a pas de problème, il affiche bien la résultat mais si je sélection un autre ou je sélection plusieurs a la fois il m'affiche n'importe quoi et je sais pas d'où sa viens le problème.
aider moi SVP c très urgent
et mercii

4 réponses

cs_hassane86 Messages postés 54 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 2 août 2012
28 juil. 2010 à 10:07
alors il n'y a personne qui peut m'aidai ?????
0
cs_hassane86 Messages postés 54 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 2 août 2012
28 juil. 2010 à 15:43
c bon j'ai trouvé la solution, merci comeme pour vos reponses loool
0
cs_Seby63 Messages postés 8 Date d'inscription dimanche 25 juillet 2010 Statut Membre Dernière intervention 12 août 2010
28 juil. 2010 à 15:52
if (isset($_POST['checkbox']))
{
    $box= $_POST['checkbox'];
    while (list ($key,$val) = @each ($box))
    {
        // $val -> la valeur de ta checkbox (une ID par exemple)
        // Le while fait autant de boucle qu'il y a de checkbox coché
    }
}


<form name="F1" method="post" action="#">
 
</form>
0
cs_Seby63 Messages postés 8 Date d'inscription dimanche 25 juillet 2010 Statut Membre Dernière intervention 12 août 2010
28 juil. 2010 à 16:02
Petit exemple avec ton code

<form name= "F1" method="post" action="#">
 mercedess 
BMW

 Renault 
</form>


Pour développer un peu, tu assigne une valeur numérique a tes checkbox plutôt qu'un nom. Ensuite au niveau du nom de tes checkbox, c'est le même à toute celle d'un même groupe (dans ton cas, les marques de voiture) -> checkbox[]

Si tu ajoute un nouveau groupe (la couleur par exemple), tu devra soumettre un nouveau nom -> checkcolor[] (au lieu de checkbox[])

$car_marks  = array('Mercedes', 'BMW', 'Renaut') ;
if (isset($_POST['checkbox'])) /* Si le formulaire a été soumis et qu'au moins 1 checkbox a été cliqué */
{
    $box= $_POST['checkbox'];
    while (list ($key,$val) = @each ($box))
    {
        echo $car_marks[$val] ;
    }
}
0
Rejoignez-nous