Probleme Requette SQL

Résolu
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 29 oct. 2006 à 16:30
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 29 oct. 2006 à 18:32
Bonjour,
J'ai fait cette requette, mais ça marche pas !

Erreur : " Erreur de syntaxe près de 'SELECT idLogo from
assoclogo WHERE `idAssoc`='4')' à la ligne 2 "

$sql = "SELECT idL,nom
FROM `table2` where idL IN
(SELECT idL from table3
WHERE `idA`='".$_GET['id']."')";

Dans ma base DSL, j 'ai 3 tables :
table1 (idA,nom)
table2(idL,nom)
table3(id,idA,idL).
Si quelqu'un me trouve l'erreur ça sera gentil de sa part ! :)
Merci

4 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 oct. 2006 à 18:24
Jcomprend pas pourquoi tu fais pas plutot :
$sql 'SELECT table2.idL, table2.nom FROM table2 INNER JOIN table3 on table2.idL table3.idL WHERE table3.idL = '.(int) $_GET['id'];

Ca, ca doit marcher non ?
C'est de la jointure banale !
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
29 oct. 2006 à 18:32
je viens de faire ça :

$sql = "SELECT tab2.id,tab2.nom
FROM tab2, tab3
where tab2.id=tab3.idL
and
tab3.idA=".$_GET['id']."
";

et ça marche , merci bcp pour votre aide !
Remarque :
9a n a été pas marché car j'ai le easyphp 1.7 avec MySQL 4.0.15 donc cette vesrion n'accepte pas les jointures ! les jointures c pour les versions sup de 4.1
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 oct. 2006 à 17:41
`idAssoc`='4')

idAssoc est de type INT chez toi.
Pour le type INT, on ne met JAMAIS de guillemets ! SEULEMENT pour les types chaines !!!!

Donc ta requète doit être construite sur ce modèle :

$sql = 'SELECT
             idL, nom
           FROM
             table2
           WHERE
             idL IN
                   (SELECT
                      idL
                    FROM
                     table3
                   WHERE
                    idA = '.$_GET['id'].')';

Et voila :)
J'ai décomposé exprès :)
0
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
29 oct. 2006 à 17:50
Merci pour ton aide
j'ai testé et c la meme erreur
tu sais, meme si je fs
$sql = 'SELECT
idL, nom
FROM
table2
WHERE
idL IN
(SELECT
idL
FROM
table3
);
ça marche pas .


et si je fs $sql = 'SELECT
idL, nom
FROM
table2
WHERE
idL IN
(1,2,3,4); ça marche
0
Rejoignez-nous