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

  FORUM HardWare.fr
  Programmation
  PHP

  probleme de concaténation requete mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de concaténation requete mysql

n°816564
limsa
Posté le 06-08-2004 à 13:51:49  profilanswer
 

Bonjour @ tous, j'ai codé un moteur de recherche en php qui ne cherche que sur une seule table ici t_signalisation
 
l'utilisateur peut rentrer a la fois 0 criteres de recherche et dans ce cas affiche toutes les signalisation ou une combinaison des 16 criteres de recherche pour l'affinage de la requete. Si le champs est renseigné, alors j'ajoute une condition AND dans la requete mysql en procédant par concaténation cependant j'ai cette erreur qui est affichée:

Citation :


Notice: Use of undefined constant query - assumed 'query' in c:\program files\easyphp1-7\www\suivianous\traitementrecherchesig.php on line 321
ERREUR" query 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 'sig_TypeResolution LIKE 1' at line 7


 
Voici le code correspondant.
 
Merci d'avance pour votre aide
 

Code :
  1. if($appsig !=="" ){
  2. $requete1= "SELECT app_Id FROM t_application
  3. WHERE app_Libelle = '$appsig'";
  4. $query1 = mysql_query($requete1) or die ('ERREUR" '.requete1.' '.mysql_error());
  5. while ($row=mysql_fetch_array($query1)){
  6. $value1= $row["app_Id"];
  7. }
  8. }
  9. if($initsig !=="" ){
  10. $requete2= "SELECT ini_id FROM t_initiateur
  11. WHERE ini_libelle = '$initsig'";
  12. $query2 = mysql_query($requete2) or die ('ERREUR" '.requete2.' '.mysql_error());
  13. while ($row=mysql_fetch_array($query2)){
  14. $value2= $row["ini_id"];
  15. }
  16. }
  17. if($affsig !=="" ){
  18. $requete3= "SELECT uti_IdUtilisateur FROM t_utilisateur
  19. WHERE uti_NomUtilisateur = '$affsig'";
  20. $query3 = mysql_query($requete3) or die ('ERREUR" '.requete3.' '.mysql_error());
  21. while ($row=mysql_fetch_array($query3)){
  22. $value3= $row["uti_IdUtilisateur"];
  23. }
  24. }
  25. if($statutsig !=="" ){
  26. $requete4= "SELECT st3_StatutId FROM t_statutsS3A
  27. WHERE st3_Libelle = '$statutsig'";
  28. $query4 = mysql_query($requete4) or die ('ERREUR" '.requete4.' '.mysql_error());
  29. while ($row=mysql_fetch_array($query4)){
  30. $value4= $row["st3_StatutId"];
  31. }
  32. }
  33. if($resolsig !=="" ){
  34. $requete5= "SELECT type_id FROM t_typeresolution
  35. WHERE type_libelle = '$resolsig'";
  36. $query5 = mysql_query($requete5) or die ('ERREUR" '.requete5.' '.mysql_error());
  37. while ($row=mysql_fetch_array($query5)){
  38. $value5= $row["type_id"];
  39. echo $value5;
  40. }
  41. }
  42. // sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
  43. if (!isset($_GET['debut'])) $debut = 0;
  44. else $debut = $_GET['debut'];
  45. $query = "SELECT sig_ApplicationId, sig_statutID, sig_NumeroSignalisation, sig_Titre,DATE_FORMAT(sig_DateReception,'%d/%m/%Y') AS sig_DateReception, DATE_FORMAT(sig_DateDebut,'%d/%m/%Y') AS sig_DateDebut, sig_IdAffectation,sig_ReferenceHDE,sig_ReferenceMOA, sig_PMOA, sig_StatutID
  46. FROM t_signalisation
  47. WHERE sig_Titre=sig_Titre";
  48. $counter = 0;
  49. if ($numsig  !== "" ) {
  50. if ($counter>=0) //$query .= " and ";
  51. $query .= "AND sig_NumeroSignalisation like '%$numsig%'";
  52. $counter++;
  53. }
  54. if ($titresig !== "" ) {
  55. if ($counter>=0) //$query .= " and ";  
  56. $query .= "AND sig_Titre like '%$titresig%'";
  57. $counter++;
  58. }
  59. if ($descsig !== "" ) {
  60. if ($counter>=0) //$query .= " and ";  
  61. $query .= "AND sig_Description like '%$descsig%'";
  62. $counter++;
  63. }
  64. if ($comsig !== "" ) {
  65. if ($counter>=0) //$query .= " and ";  
  66. $query .= "AND sig_Commentaire like '%$comsig%'";
  67. $counter++;
  68. }
  69. if ($appsig !== "" ) {
  70. if ($counter>=0) //$query .= " and ";  
  71. $query .= "AND sig_ApplicationId like '%$value1%'";
  72. $counter++;
  73. }
  74. if ($versionlot !== "" ) {
  75. if ($counter>=0) //$query .= " and ";  
  76. $query .= "AND sig_Version like '%$versionlot%'";
  77. $counter++;
  78. }
  79. if ($resolsig !== "" ) {
  80. if ($counter>=0) //$query .= " and ";  
  81. $query .= "AND sig_TypeResolution LIKE $value5";
  82. $counter++;
  83. }
  84. if ($initsig !== "" ) {
  85. if ($counter>=0) //$query .= " and ";  
  86. $query .= "AND sig_Initiateur like '%value2%'";
  87. $counter++;
  88. }
  89. if ($affsig !== "" ) {
  90. if ($counter>=0) //$query .= "and";  
  91. $query .= "AND sig_IdAffectation like '%$value3%'";
  92. $counter++;
  93. }
  94. if ($prioritesig !== "" ) {
  95. if ($counter>=0) //$query .= "and";  
  96. $query .= "AND sig_Priorite like '%$prioritesig%'";
  97. $counter++;
  98. }
  99. if ($refhdesig !== "" ) {
  100. if ($counter>=0) //$query .= " and ";  
  101. $query .= "AND sig_ReferenceHDE like '%$refhdesig%'";
  102. $counter++;
  103. }
  104. if ($refsuexsig !== "" ) {
  105. if ($counter>=0) //$query .= " and ";  
  106. $query .= "AND sig_ReferenceSuEx like '%$refsuexsig%'";
  107. $counter++;
  108. }
  109. if ($pmoasig !== "" ) {
  110. if ($counter>=0) //$query .= " and ";  
  111. $query .= "AND sig_PMOA like '%$pmoasig%'";
  112. $counter++;
  113. }
  114. if ($statutsig !== "" ) {
  115. if ($counter>=0) //$query .= " and ";    
  116. $query .= "AND sig_StatutID like '%$value4%'";
  117. $counter++;
  118. }
  119. if ($refmoasig !== "" ) {
  120. if ($counter>=0) //$query .= " and ";  
  121. $query .= "AND sig_ReferenceMOA like '%$refmoasig%'";
  122. $counter++;
  123. }
  124. if ($refitsig !== "" ) {
  125. if ($counter>=0) //$query .= " and ";  
  126. $query .= "AND sig_ReferenceFO like '%$refitsig%'";
  127. $counter++;
  128. }
  129. // on exécute la requête
  130. $req = mysql_query($query)or die ('ERREUR" '.query.' '.mysql_error());

mood
Publicité
Posté le 06-08-2004 à 13:51:49  profilanswer
 

n°816565
serty2
Posté le 06-08-2004 à 13:53:39  profilanswer
 

rajoute un espace devant tes AND... ou apres la fin de ton Where :p

n°816570
serty2
Posté le 06-08-2004 à 13:57:32  profilanswer
 

d'autre part tu aurais pu faire une fonction pour effectuer la concatenation des AND, type :

Code :
  1. function toto($counter,$NameChamp,$valeur,)
  2. {
  3.    if ($valeur !== "" ) { 
  4.     if ($counter>=0) //$query .= " and ";
  5. {
  6.       $counter++;
  7.       return "AND ".$NameChamp." like '%$refitsig%'";
  8. }
  9.    
  10. }
  11. c'eut ete plus joli mais c une question personnelle :p (ca evite aussi de répeter du code dans les pages)

n°816574
limsa
Posté le 06-08-2004 à 14:02:53  profilanswer
 

oui c vrai mais pour le moment c du prototypage.
 
Merci encore pour ton aide j'ai rajouté un espace et ca marche comme quoi certaine erreurs ne tiennent qu'à peu de chose.
 
Par contre si je rajoute une contraite DESC dans la requete bah la ca marche plus.
 
Aurais-tu une idée ?

n°816577
serty2
Posté le 06-08-2004 à 14:04:24  profilanswer
 

si tu rajoutes uniquement DESC, cela ne marchera pas , DESC s'utilise avec ORDER BY
tu ajoutes ORDER BY DESC a la fin de la requete et c'est bon :p

n°816580
limsa
Posté le 06-08-2004 à 14:12:45  profilanswer
 

Bah apparement non si je lui dit  
ORDER BY sig_NumeroSignalisation DESC
 
ca ne marche pas

n°816584
serty2
Posté le 06-08-2004 à 14:18:20  profilanswer
 

ahhh ca c'est etonnant, tu peux faire un echo de ta querry a la fin du fichier pour voir stp ?

n°816588
limsa
Posté le 06-08-2004 à 14:27:54  profilanswer
 

j'ai trouver le truc il fallait faire encore une concaténation a la fin
 
$query .=" ORDER BY sig_NumeroSignalisation DESC";
 
Merci encore pour ton aide

n°816594
serty2
Posté le 06-08-2004 à 14:33:32  profilanswer
 

de rien :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme de concaténation requete mysql

 

Sujets relatifs
[DEVC++] Problème de linkage??[PHP/MySQL] - Problème d'insertion dans BDD
[MySQL] Requete utilisant 2 tables, ca marche pasUne requête que j'arrive pas à faire....
HELP!!!!!!!!Problème Sql Server sous vb.net!!!!!!!!excel-mysql
[Java] Problème de taille mémoire avec un JTreeproblème avec for_each
Plus de sujets relatifs à : probleme de concaténation requete mysql


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