Récupérer plusieurs valeurs de checkbox

Signaler
Messages postés
4
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
6 mai 2008
-
Messages postés
4
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
6 mai 2008
-
Bonjour tout le monde,
voila j'ai un petit soucis avec des check box, en fait j'ai plusieurs revendeurs et on les choisit en cochant les check box les correspondant, j'aimerais après celà faire un select dans ma table revendeur ou le numero du revendeur correspont au(x) checkbox(s).
Voici mon code :
checkbox :
    ----

                    PHOTO HALL MULTIMEDIA 41089
       ,
                   
       ,
   
    ----

                    NEW VANDEN BORRE SAV 4001
       ,
                   
       ,
   
    ----

                   
       ,
   

Ma récupération :
(grâce au count je compte le nombre de checkbox cochées)
for($i=0;$i<count($_POST['rev']);$i++)
        {
        $rev=mysql_query("select numrevendeur from revendeurs where nomrevendeur='".$_POST['rev'][$i]."'",$db);
                    $numRev=mysql_fetch_array($rev,MYSQL_ASSOC);
                    $tab[]=$numRev['numrevendeur'];    
         }
       
        for($i=0;$i<count($_POST['rev']);$i++)
        {
        echo  $tab[$i];
       $select=mysql_query("SELECT  nomrevendeur from revendeurs where numrevendeur='".$tab[$i]."'  ",$db);
        
      }

En teste je fais un echo $tab[$i], il m'affiche bien les numéros des revendeurs cochés mais après quand j'affiche le résultat de ma requête il ne m'affiche que le dernier checkbox coché .
Je ne sais pas si quelqu'un à déjà eu le problème et a su le résoudre
Si quelqu'un a une idée je serais ravi de la lire .
Merci d'avance

3 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
tu fais n requêtes ou n est le nombre de ...revendeurs

for($i=0;$i<count($_POST['rev']);$i++)
        {
        $rev=mysql_query("select numrevendeur from revendeurs where nomrevendeur='".$_POST['rev'][$i]."'",$db);
                    $numRev=mysql_fetch_array($rev,MYSQL_ASSOC);
                    $tab[]=$numRev['numrevendeur'];    
         }
       
        for($i=0;$i<count($_POST['rev']);$i++)
        {
        $aiiIdRevendeurs=$tab[$i];
      
        
      }
$select=mysql_query("SELECT  nomrevendeur from revendeurs where numrevendeur='".$tab[$i]."'  ",$db);

//c'est des entiers ou des string en bdd? grrrr TYPEZZZZZZZZZZZZZZZZZZZZ (ca devrait etre des entiers)

$select=mysql_query('SELECT  nomrevendeur from revendeurs where numrevendeur IN('.implode(',',$aiiIdRevendeurs).')  ',$db);

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
12
Bonjour,

Avec ça, une seule requête :

if(isset($_POST['rev']))
{
$nom = '(\'' . implode('\',\'', $_POST['rev']) . '\')';
$sql = 'select numrevendeur
from revendeurs
where nomrevendeur in ' . $nom;
}
Messages postés
4
Date d'inscription
vendredi 16 février 2007
Statut
Membre
Dernière intervention
6 mai 2008

je viens tester vos codes (merci d'avoir répondu ), malheureusement ça ne fonctionne toujours pas
j'ai essayé avec la fonction implode comme sité plus haut mais j'ai toujours le problème qu'il ne m'affiche que le dernier revendeur cochés.
Je patoge un peu la, je ne comprend pas pourquoi ça ne va pas...