Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2010, 02h38   #1
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Par défaut SELECT WHERE IN erreur

Bonjour,

Je veux faire un select comme suit :

Code :
$sql = 'SELECT * FROM menu  WHERE type IN ('.$catresto1.','.$catresto2.','.$catresto3.')  AND  id IN ('.$in.') AND valid=1 ORDER BY nom';
j'obtiens l'erreur suivante:

Citation:
ERREUR MYSQL numero: 1054
Type de cette erreur: Unknown column 'fastfood' in 'where clause'
fastfood est bien la valeur de $catresto1 mais il veut que ce soit une colonne?
Je ne comprend pas bien pourquoi?

Merci

Andre
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 04h04   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour

Code sql :
$sql = "SELECT * FROM menu  WHERE type IN ('".$catresto1."','".$catresto2."','".$catresto3."')  AND  id IN ('".$in."') AND valid=1 ORDER BY nom";
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h16   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 143
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 143
Points : 30
Points : 30
il sera mieux de montrer tout le code, là ou tu sélectionnes, et là où tu stockes, les informations dans tes variables
on pourra mieux comprendre
kitcarson23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 15h01   #4
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Merci par contre j'ai du changer

par

pour que cela fonctionne

autrement il ne récupérait que la première valeur (1) du ma variable $in qui était du type 1,2,3,4,5....etc....

Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 13h11   #5
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 143
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 143
Points : 30
Points : 30
Bonjour
qu'est ce que vous avez stocké dans il est mieux de montrer la partie entière du code pour que les gens puissent mieux te guider.
kitcarson23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 15h23   #6
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
le resultat d'un foreach , $in qui était du type 1,2,3,4,5....etc....
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 16h27   #7
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 143
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 143
Points : 30
Points : 30
bonjour
dans ce cas, il faut proceder comme tel

Code :
$sql = "SELECT * FROM menu  WHERE type IN ('".$catresto1."','".$catresto2."','".$catresto3."')  AND  id ='1' OR id ='2' OR id ='3' OR id ='3' OR id ='4' OR id ='4'  AND valid=1 ORDER BY nom";
en faisant cela, tu vas dans ta table et tu attribues pour test, des valeurs 1,2,3,4 au champ dans les valeurs sont stockées dans la variable si cela fonctionne alors il faut revoir la structuration de ton code.

tu peux faire des test dans l'onglet sql dans phpmyadmin.
pour voir
kitcarson23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 17h37   #8
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Fait un echo de la requête et montre nous ce que ça donne.

A+
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 01h50   #9
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
le resultat de $in est 20,21,22,26,27,28,29 mais change a chaque requete

En fait ca fonctionne bien c'est jusque que je ne comprend pas pourquoi je dois ecrire $in comme cela
Code :
$sql = "SELECT * FROM menu  WHERE type IN ('".$catresto1."','".$catresto2."','".$catresto3."')  AND  id IN (".$in.") AND valid=1 ORDER BY nom";
et non pas comme cela (il ne recupere que la valeur 20 de $in

Code :
$sql = "SELECT * FROM menu  WHERE type IN ('".$catresto1."','".$catresto2."','".$catresto3."')  AND  id IN ('".$in."') AND valid=1 ORDER BY nom";
Le PHP a surement ses raisons que je ne comprend pas

Merci de votre aide
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 04h07   #10
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

car si tu fait ('".$in."'), c'est connue comme une seule valeur.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h14.


 
 
 
 
Partenaires

Hébergement Web