IN / NOT IN sur Tris Liste -> Souci! - SQL/NoSQL - Programmation
MarshPosté le 23-05-2006 à 16:37:43
Bonjour à tous,
Je fais face à un problème dans le cadre du développement d'une application que je dois réaliser en stage. J'ai une liste de dossiers (table Dossier de ma BD) que j'affiche et que je peux trier selon des critères (Voir image ci dessous).
Je rencontre deux problèmes : - Lorsque je veux faire un tri selon des mots clés (fait intervenir la table Relationmotsclesdossier de ma BD) - Lorsque je veux faire un tri selon des natures de demande (fait intervenir la table Periodicite de ma BD)
Voici ma requête de base (lorsqu'aucun critère n'est sélectionné) :
FROM dossier, periodicite, relationmotsclesdossier
WHERE 31 IN (SELECT idMotCle FROM relationmotsclesdossier)
ORDER BY idDossier ;
Erreur :
Code :
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 'SELECT idMotCle FROM relationmotsclesdossier) ORDER BY idDossi
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\intranet\tableau_de_bord\classes\db.php on line 37
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\intranet\tableau_de_bord\classes\db.php on line 49
Voilà, le fichier db.php contient des fonctions. La ligne 37 est la dernière ligne de la fonction ci dessous ( $this->num_rows[$i] = mysql_num_rows( $this->result[$i] ); ) :
FROM dossier, periodicite, relationmotsclesdossier
WHERE dossier.refDossier NOT IN (SELECT refDossier FROM periodicite)
AND dossier.refDossier NOT IN (SELECT idDossierInitial FROM dossier)
ORDER BY idDossier ;
Erreur :
Code :
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 'SELECT refDossier FROM periodicite) AND dossier.refDossier NOT
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\intranet\tableau_de_bord\classes\db.php on line 37
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in F:\intranet\tableau_de_bord\classes\db.php on line 49
Bref, si vous pouviez m'aider. Ces erreurs interviennent que dans le cas où je dois intervenir sur d'autres tables que celle où j'affiche tout mon contenu à savoir la table Dossier.
Si je n'ai pas été clair, n'hésitez pas à me le dire.
Merci
Message édité par Fiiies1 le 23-05-2006 à 16:45:02
Marsh Posté le 23-05-2006 à 16:37:43
Bonjour à tous,
Je fais face à un problème dans le cadre du développement d'une application que je dois réaliser en stage.
J'ai une liste de dossiers (table Dossier de ma BD) que j'affiche et que je peux trier selon des critères (Voir image ci dessous).
Je rencontre deux problèmes :
- Lorsque je veux faire un tri selon des mots clés (fait intervenir la table Relationmotsclesdossier de ma BD)
- Lorsque je veux faire un tri selon des natures de demande (fait intervenir la table Periodicite de ma BD)
Voici ma requête de base (lorsqu'aucun critère n'est sélectionné) :
Lorsque je sélectionne des critères la requête me donne ça (insertion d'une variable PHP contenant la chaine à concaténer) :
Bref, quand je sélectionne un mot Clé, voici ma requête (le nombre étant l'identifiant du Mot Clé) et dessous suit l'erreur qui commence à m'agacer :
Erreur :
Voilà, le fichier db.php contient des fonctions. La ligne 37 est la dernière ligne de la fonction ci dessous ( $this->num_rows[$i] = mysql_num_rows( $this->result[$i] ); ) :
La ligne 49 : ( return mysql_fetch_array( $this->result[$i], MYSQL_ASSOC ); )
Je ne vois vraiment pas d'où cela peut venir...
Pareil si je fais une sélection d'une Nature de Dossier, voici la requête :
Erreur :
Bref, si vous pouviez m'aider. Ces erreurs interviennent que dans le cas où je dois intervenir sur d'autres tables que celle où j'affiche tout mon contenu à savoir la table Dossier.
Si je n'ai pas été clair, n'hésitez pas à me le dire.
Merci
Message édité par Fiiies1 le 23-05-2006 à 16:45:02