requete avec valeurs multiples

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 : requete avec valeurs multiples

par nebil » 19 juil. 2008, 16:36

Merci mais j'ai une petite erreur
voila de facon un peu plus precise comme je recupere ma variable
$liste_option

Code : Tout sélectionner

if(isset($_POST['option'])) { $options = $_POST['option']; foreach($options as $option_auto) $liste_option .= $option_auto . ','; // je construit le IN $liste_option = substr($liste_option,0, -1); // je retire la derniere virgule }
le echo $liste_option 14,23,29


la requete

Code : Tout sélectionner

$sql = "SELECT id, nom_option FROM options_nom WHERE id IN ".implode($liste_option);
l'erreur
Warning: implode() [function.implode]: Argument to implode must be an array. in

le echo "$sql";
SELECT id, nom_option FROM options_nom WHERE id IN 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 '' at line 1

par albat » 19 juil. 2008, 15:52

Et dire que je le connaissais, ce implode() !
Mais... dormi que 4 heures par nuit toute cette semaine...
:oops:

par zeus » 19 juil. 2008, 15:51

Encore mieux :
$liste_option = array(1, 2, 3, 4);
$sql = 'SELECT champ1, champ2 FROM options_nom WHERE id IN ('. implode(',', $liste_option) .')';
L'avantage du implode(), c'est qu'il ne met pas la fameuse virgule en trop à la fin :p

par albat » 19 juil. 2008, 15:16

Personnellement, je partirai sur cette base.
Ce n'est pas la seule méthode, mais c'est la mienne. :lol:
$liste_option = array(1, 2, 3, 4);
$sql = 'SELECT champ1, champ2 FROM options_nom WHERE id IN (';
foreach ($liste_option as $value)
         { $sql .= $value.', ';
         }
$sql .= ')';
$sql = str_replace( ', )', ')', $sql); // Pas top élégant, mais j'ai fait ça en 12 secondes. À optimiser donc...
Précisions :
- Interdiction formelle d'utiliser ce script sans l'avoir compris ! :twisted:
- Le SELECT * est à proscrire.

par albat » 19 juil. 2008, 15:07

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

requete avec valeurs multiples

par nebil » 19 juil. 2008, 14:56

Bonjour ,
CREATE TABLE

quelqu'un pourrais me dire comment on extrait d'une colonne des valeurs precises et multiple
car avec la requete comme cela j'ai pas de resultat il me repond uniquement si $liste_option contient
un seul chiffre !!!
je fait le test directement dans la console myadmin

Code : Tout sélectionner

$liste_option=(1,2,3,4); $sql=("select * from options_nom where id='$liste_option' ");

Code : Tout sélectionner

echo "sql"; == select * from options_nom where id='1,2,3,4'