Valeurs checkbox dans une requête mysql du type IN()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Valeurs checkbox dans une requête mysql du type IN()

Re: Valeurs checkbox dans une requête mysql du type IN()

par mere-teresa » 17 juil. 2014, 11:08

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.

Re: Valeurs checkbox dans une requête mysql du type IN()

par Elie » 17 juil. 2014, 10:44

Bon ca va :)
J'ai corrigé !

Re: Valeurs checkbox dans une requête mysql du type IN()

par moogli » 17 juil. 2014, 10:41

@Elie : en dehors de l'erreur de syntaxe ce que tu propose ne fonctionne que pour des entiers.
or la il semble que ce ne soit pas le cas (vue ce qu'il y a dans les value des checkbox ;) )


@+

Re: Valeurs checkbox dans une requête mysql du type IN()

par Elie » 17 juil. 2014, 10:33

L'ayant utilisé tous les jours depuis 2 semaines voici comment je fais :
$sql="SELECT * FROM table WHERE activity IN('".implode("', '", $_GET['check_list'])."')";

Re: Valeurs checkbox dans une requête mysql du type IN()

par moogli » 17 juil. 2014, 01:09

salut,

une chaîne de caractères est forcément délimité par des '.

or si tu affiche la requête que tu génère tu verra que ce n'est pas le cas.

c'est aussi réalisable avec implode et deux concaténations ;)

@+

Valeurs checkbox dans une requête mysql du type IN()

par Laurent V. » 16 juil. 2014, 22:55

Bonjour,

Je cherche à prendre les valeurs des checkbox pour les mettre dans une requête mysql du type WHERE ... IN($array)...
J'ai essayé avec
$in_clause = array();
foreach($_GET['check_list'] as $v)...

Si je vais un var_dump($_GET['check_list']), j'ai: array(2) { [0]=> string(3) "one" [1]=> string(3) "two" }

Code : Tout sélectionner

<form action="index2.php" method="get"> <input type="checkbox" name="check_list[]" alt="Checkbox" value="one">One <input type="checkbox" name="check_list[]" alt="Checkbox" value="two">Two <input type="checkbox" name="check_list[]" alt="Checkbox" value="three">Three <input type="submit" value="Submit">
    if(!empty($_GET['check_list'])) 
    {
    foreach($_GET['check_list'] as $check) 
    {  
    $ids = implode(',', $check); 
    echo $ids;
    }
    }

    $sql="SELECT * FROM table WHERE activity IN($ids)";

    I've tried with array(), implode(), explode()...
    Nothing works.
    this is a simplified code: I did not put the code against injection.
    Can anybody be of help. Thanks :)