inserer une requete dans une table

inserer une requete dans une table - PHP - Programmation

Marsh Posté le 12-11-2008 à 17:25:07    

bonjour tous le monde!
 
'oilou, j'enregistre cette requete dans une table
comme ceci :
 
 
 

Code :
  1. <?php
  2. $requ='SELECT *
  3. FROM clients c
  4. LEFT OUTER JOIN service s ON c.id = s.id_user where 1=1';
  5. if(!empty($contact))
  6. $requ.='AND c.contact LIKE \'%$contact%\''; 
  7. if(!empty($commercial))
  8. $requ.='AND c.commercial LIKE \'%$commercial%\'';
  9. if(!empty($services))
  10. $requ.='AND c.service_com LIKE \'%$services%\'';
  11. if(!empty($nom))
  12. $requ.='AND s.nom LIKE \'%$nom%\'';
  13. if(!empty($prenom))
  14. $requ.='AND s.prenom LIKE \'%$prenom%\'';
  15. if(!empty($dpt))
  16. $requ.='AND c.dpt LIKE \'%$dpt%\'';
  17. if(!empty($prestation))
  18. $requ.='AND c.staut_com LIKE \'%$statut_com%\'';
  19. if(!empty($compte))
  20. $requ.='AND c.compte LIKE \'%$compte%\'';
  21. if(!empty($ville))
  22. $requ.='AND c.ville LIKE \'%$ville%\'';
  23. if(!empty($date_relance))
  24. $requ.='and (c.date_relance BETWEEN \'$date_relance\' AND \'$date_relance2\')OR(s.date_relance_service BETWEEN \'$date_relance\' AND \'$date_relance2\')';
  25. mysql_query("update req set  req1='$requ'" );


 le probleme c est que quand je regarde ma table, je trouve que ceci :
 
 
 

Code :
  1. SELECT *
  2. FROM clients c
  3. LEFT OUTER JOIN service s ON c.id = s.id_user where 1=1


alors que j'ai rempli le champs contact par exemple...
):
 
pourquoi siouplais?
__________________
"In order to ensure the security and continuing stability, the Republic will be reorganized, into the first Galactic Empire!
For a safe and secure society."

Reply

Marsh Posté le 12-11-2008 à 17:25:07   

Reply

Marsh Posté le 12-11-2008 à 17:33:23    

erreur 1 :  
dans 'AND c.contact LIKE \'%$contact%\'';  $contact ne sera pas intéprété  
echo '$contact';  affiche $contact
echo "$contact"; affiche le contenu de la variable $contact
 
utilise $requ.="AND c.contact LIKE '%". mysql_real_escape_string($contact)."%'";  
 
 
et sinon, ca me fait plaisir de t'aide,r mais le moins que tu puisse faire, c'est de bien lire les aides que je te donnes


---------------

Reply

Marsh Posté le 12-11-2008 à 17:46:48    

mais le moins que tu puisse faire, c'est de bien lire les aides que je te donnes
 
 :??:  dsl, j'essaye de faire ce que tu dis mais je suis pas une fleche en php   :sarcastic:  
par exemple la, quand je fais ceci :
 

Code :
  1. mysql_query("update req set  req2=' LIMIT 0, $nbaffiche'" );
  2. $requ='SELECT *
  3. FROM clients c
  4. LEFT OUTER JOIN service s ON c.id = s.id_user where 1=1';
  5. $requ.="AND c.contact LIKE '%". mysql_real_escape_string($contact)."%'";
  6. mysql_query("update req set  req1='$requ'" );


 
et bah prrrrt! ca insere rien dans la bdd...j'ai encore du faire une erreur mais je vois pas ou  :pfff:

Reply

Marsh Posté le 12-11-2008 à 18:28:24    

mysql_query("update req set  req1='$requ'" ) or die( mysql_error());
 
tu aura un message d'erreur


---------------

Reply

Marsh Posté le 13-11-2008 à 13:57:24    

Les erreurs que vous avez constatées ne sont, cela dit, pas la cause première de son pb. Ces erreurs là engendre une erreur de syntaxe SQL ou une erreur d'exécution.
Le code fourni ne montre pas un truc : comment sont récupérés les valeurs des champs de son formulaire (ce qui permet de remplir ses variables $contact, $commercial...). Vu qu'il ne nous l'a pas montré, est-ce que par hasard ce ne serait pas tout simplement un pb de register_global qui était à ON à un moment donné et qui est passé à OFF (ou alors un script qui a été développé sur un serveur configuré en ON et qui est maintenant mis en prod sur un serveur configuré en OFF)?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-11-2008 à 18:08:08    

fait un script php
<?php
phpinfo();
?>
exécutes-le et regarde la valeur de la variable register_global si elle à OFF. si c'est le cas, ben faudra faire :
$contact = $_POST["contact"];
 
sinon, y'avait une vielle fonction extract() qui était là pour ce pb, il me semble.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 13-11-2008 à 18:14:51    

enfin si tu as la possiblité de désactiver register_globals et de ne pas utiliser extract pour les données HTTP c'est mieux (tu trouveras les raisons quelque part dans la doc :o)

Reply

Marsh Posté le 14-11-2008 à 09:36:20    

bien d'accord avec toi ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed