Page 1 sur 1

[AIDE] Requete SQL dans une variable :/

Posté : 21 avr. 2010, 16:36
par snaykphp
Bonjour tout le monde,

Voila, j'ai besoin d'aide. Je dispose d'un formulaire de recherche composé de 19 champs, la requête SQL se fait de cette façon:

- J'initialise une variable $req="SELECT .... FROM matable";
- Je vérifie en premier les champs nécessitant une jointure externe, s'ils ne sont pas vide, je modifie la requete: $req.="LEFT JOIN ... ON .... = ..."
- Ensuite, je vérifie les champs, s'ils sont remplis et que c'est le premier champs : $req.="WHERE ... LIKE %$var%" sinon $req.="AND ... LIKE %$var%"
- Je teste ca pour tous mes champs, et je fini le tout par un petit tri: $req.="ORDER BY ..."

J'obtiens donc au final une requete du style: $req="SELECT .... FROM matable LEFT JOIN ... ON .... = ... WHERE ... LIKE %$var% AND ... LIKE %$var% ORDER BY ...";

Donc tout va bien, tout fonctionne, mais niveau sécurité c'est pas top!

J'utilise PDO pour la gestion de base de données, c'est la première fois que je l'utilise, et je ne suis pas encore un expert en php. Je pensais préparer la requete, mais je ne vois pas comment je peux faire dans mon cas hmm J'ai chercher un peu partout sur le net, on dirait que je suis le seul a avoir eu cette idée pour créer ma requete! yikes

J'ai besoin d'aide, besoin de conseils, d'avis sur ma méthode? Ou alors une autre piste pour gérer mes 19 champs! ?

Je tiens a rajouter, que j'ai préféré afficher le résultat sur la même page afin d'éviter une URL de 3kms!

Je vous remercie d'avance.

Re: [AIDE] Requete SQL dans une variable :/

Posté : 21 avr. 2010, 16:40
par stealth35
ton moteur de base c'est myISAM ? sinon tu peux faire autrement pour faire qu'un seul LIKE, pour les requête préparer va faire un tour par la : http://www.php.net/manual/fr/pdo.prepare.php

Re: [AIDE] Requete SQL dans une variable :/

Posté : 21 avr. 2010, 16:56
par snaykphp
Quand tu parles de moteur de base, tu parles de ma base de données? si oui, bah j'utilise mySQL.

Ensuite j'ai regardé comment ca marchait les requetes préparées, c'est juste que je vois pas comment les préparer avec MA requete qui est un string... :/

Re: [AIDE] Requete SQL dans une variable :/

Posté : 21 avr. 2010, 16:58
par stealth35
non moteur de base c'est pas pareil
http://dev.mysql.com/doc/refman/5.0/fr/ ... gines.html

Re: [AIDE] Requete SQL dans une variable :/

Posté : 21 avr. 2010, 17:05
par snaykphp
Euh et je trouve ca comment? Et puis c'est quoi le rapport avec ma question? ^^

Sinon j'utilise WAMPSERVER, PHP 5.3, MySQL 5.1.36

Re: [AIDE] Requete SQL dans une variable :/

Posté : 22 avr. 2010, 10:07
par stealth35
parce que au lieu de faire plein de LIKE tu ferais juste MATCH...AGAINST et t'aurais pas besoin de checker les champs vides