Instruction NOT EXISTS ne marche pas

Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006 - 4 mars 2005 à 11:43
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006 - 11 mars 2005 à 13:07
Bonjour,
je voudrais selectionné des enregistrements d'une table qui n'existent pas dans une autre, dans ma base SQL.
je fais donc la requete suivante :
$req = "select id_profil from profil
where not exists(select * from informations where informations.id_profil = profil.id_profil)";

mais quand la requete s'exécute j'ai un message d'erreur :
"Warning: Supplied argument is not a valid MySQL result resource in ..."

Eske l'instruction "not exists" peu etre utilisée en php ?
Merci de votra aide
Gagou

11 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
4 mars 2005 à 11:49
hello !

tu dis :

mais quand la requete s'exécute j'ai un message d'erreur :
"Warning: Supplied argument is not a valid MySQL result resource in ..."




A mon avis, ça c'est quand tu vas chercher le résultat de ta requete, pas quand elle s'execute.

ajoute "or die(mysql_error())" ) la fin de ton mysql_query, pour afficher quelle est l'erreur lors de la requete.
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006
4 mars 2005 à 11:53
Message qu' il me renvoi :
You have an error in your SQL syntax near 'exists(select * from informations where informations.id_profil = profil.id_profi' at line 2
donc c bien sur ma requete apparemment
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 12:06
Hello,



mets un espace entre exists et ta parenthese.



<?php

$req = "select id_profil from profil
where not exists (select * from informations where informations.id_profil = profil.id_profil)";


?>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 12:08
Je ne sais pas si ce sera la solution, mais cela cause parfois des pb en sql (en ligne de commande): Sait-on jamais!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006
4 mars 2005 à 12:11
toujours pareil, je comprend pas

You have an error in your SQL syntax near 'exists (select * from informations where informations.id_profil = profil.id_prof' at line 2
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 mars 2005 à 12:41
Salut,



tu peux faire CREATE TABLE IF NOT EXISTS mais pas SELECT il me semble.



Après dis-nous ce que tu veux faire, on pourra peut-être t'aider.



a +






<li>
0
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006
4 mars 2005 à 14:05
g 2 tables
je veux insérer dans une table des valeurs pour des profils distintcs. mais je ne veux pas rajouter 2 fois les mêmes valeurs(si la valuer à déjà été saisie auparevant), donc j'insère uniquement pour les profils qui n'ont pas de valeurs; et donc qui ne sont pas présents dans ma table.

c pour ça ke je voulais utiliser le Not Exists. mais ça ne marche pas
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 14:10
Si si, select where not exists ... ca fonctionne normalement.



D'ailleurs :

http://dev.mysql.com/doc/mysql/en/exists-and-not-exists-subqueries.html
0
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006
7 mars 2005 à 09:57
ça ne marche tjs pas, g tjs la même erreur, et g essayé plusieurs syntaxes, je ne sais pas d'où ça vient .
Kelkun a-t-il une idée ?

l'erreur est :
You have an error in your SQL syntax near 'exists(select id_profil from informations where informations.id_profil = pr' at line 2

ma requete:
$req = "select id_profil from profil
where not exists(select id_profil from informations
where informations.id_profil = profil.id_profil)";
$res=mysql_query($req) or die(mysql_error());
0
tak182 Messages postés 1 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 11 mars 2005
11 mars 2005 à 12:30
J'ai exactement le même problème, et cela fais deux jours que je teste des syntaxe différente.

Vu que ma sélection n'étais pas très grosse, j'ai préféré faire à la main tellement j'étais sur les nerfs.



Bref, je n'ai pas la réponse, néanmoins, est-ce que le mot-clé Exists fonctionne avec toutes les versions de MySQL ?



je crois avoir lu sur un autre site que cela ne marchait qu'à partir de
la version 4, mais il se trouve que j'ai une version supérieure ....



Enfin, dans tout les cas j'ai exactement la même erreur que toi, donc si tu trouves la réponse je suis intéressé.



Merci
0
Gagou_c Messages postés 65 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 31 janvier 2006
11 mars 2005 à 13:07
finalement je compare mes deux listes, avec deux while imbriqués, c plus lourd mais au moins ça marche !!!
donc voila !!
A bientot
Gagou
0
Rejoignez-nous