Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  IN / NOT IN sur Tris Liste -> Souci!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

IN / NOT IN sur Tris Liste -> Souci!

n°1373338
Fiiies1
Jase From Outta Space
Posté le 23-05-2006 à 16:37:43  profilanswer
 

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).
 
http://img80.imageshack.us/img80/1420/listeredim0nq.th.jpg
 
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é) :

Code :
  1. SELECT idDossier, dossier.etatDossier, periodicite.etatDossier, dateEcheanceDossier,
  2. idDossierInitial, dossier.refDossier, periodicite.refDossier, relationmotsclesdossier.refDossier,
  3. idClientDossier, idFormaliteCnilDossier, dateLivraisonDossier, idAgentDossier, titreDossier
  4. FROM dossier, periodicite, relationmotsclesdossier
  5. ORDER BY idDossier ;


 
Lorsque je sélectionne des critères la requête me donne ça (insertion d'une variable PHP contenant la chaine à concaténer) :

Code :
  1. SELECT idDossier, dossier.etatDossier, periodicite.etatDossier, dateEcheanceDossier,
  2. idDossierInitial, dossier.refDossier, periodicite.refDossier, relationmotsclesdossier.refDossier,
  3. idClientDossier, idFormaliteCnilDossier, dateLivraisonDossier, idAgentDossier, titreDossier
  4. FROM dossier, periodicite, relationmotsclesdossier ".$_SESSION['AjoutRequete']."
  5. ORDER BY idDossier ;


 
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 :

Code :
  1. SELECT idDossier, dossier.etatDossier, periodicite.etatDossier, dateEcheanceDossier,
  2. idDossierInitial, dossier.refDossier, periodicite.refDossier, relationmotsclesdossier.refDossier,
  3. idClientDossier, idFormaliteCnilDossier, dateLivraisonDossier, idAgentDossier, titreDossier
  4. FROM dossier, periodicite, relationmotsclesdossier
  5. WHERE 31 IN (SELECT idMotCle FROM relationmotsclesdossier)
  6. ORDER BY idDossier ;


 
Erreur :

Code :
  1. You have an error in your SQL syntax. Check the manual that corresponds to your
  2. MySQL server version for the right syntax to use near 'SELECT idMotCle FROM relationmotsclesdossier) ORDER BY idDossi
  3. 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
  4. 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] ); ) :

Code :
  1. // Effectue une requête
  2.    function query($query,$i) {
  3.        if(is_integer($i)) {
  4.           $this->result[$i] = mysql_query( $query, $this->link );
  5.           echo mysql_error() ;
  6.           $this->num_rows[$i] = mysql_num_rows( $this->result[$i] );
  7.        }
  8.    }


 
La ligne 49 : ( return mysql_fetch_array( $this->result[$i], MYSQL_ASSOC ); )

Code :
  1. // Itère sur le résultat de la requête
  2.    function fetch($i) {
  3.         if(is_integer($i))
  4.           return mysql_fetch_array( $this->result[$i], MYSQL_ASSOC );
  5.    }


 
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 :

Code :
  1. SELECT idDossier, dossier.etatDossier, periodicite.etatDossier, dateEcheanceDossier,
  2. idDossierInitial, dossier.refDossier, periodicite.refDossier, relationmotsclesdossier.refDossier,
  3. idClientDossier, idFormaliteCnilDossier, dateLivraisonDossier, idAgentDossier, titreDossier
  4. FROM dossier, periodicite, relationmotsclesdossier
  5. WHERE dossier.refDossier NOT IN (SELECT refDossier FROM periodicite)
  6. AND dossier.refDossier NOT IN (SELECT idDossierInitial FROM dossier)
  7. ORDER BY idDossier ;


 
Erreur :

Code :
  1. You have an error in your SQL syntax. Check the manual that corresponds to your
  2. MySQL server version for the right syntax to use near 'SELECT refDossier FROM periodicite) AND dossier.refDossier NOT
  3. 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
  4. 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
mood
Publicité
Posté le 23-05-2006 à 16:37:43  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  IN / NOT IN sur Tris Liste -> Souci!

 

Sujets relatifs
changer la couleur de texte d'une liste deroulante[ASP] Valeurs d'une liste déroulante persistantes ?
Encore un proble (un autre)...liste de sous dossiers->plantage word[ACCESS/VBA] Selection multiple auto dans une zone de liste
[FORMULAIRE]Liste deroulante à choix multiples!liste deroulante
liste déroulante...comment implémenter une Liste
un tit souci de pointeur[VB/Access] Recharger une liste déroulante
Plus de sujets relatifs à : IN / NOT IN sur Tris Liste -> Souci!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR