Aide pour optimiser l'écriture d'une requete PHP/MYSQL
3 messages
• Page 1 sur 1
- the386mmx
- Nouveau WRInaute

- Messages: 2
- Inscription: 1 Mar 2007
Aide pour optimiser l'écriture d'une requete PHP/MYSQL
Bonjour,
je débute en programmation php & mySQL, et j'aurai besoin de conseils...
Ma base est constituée de champs titres, description, date (etc.) et je souhaite pouvoir faire une recherche sur titre / description et par chronologie (anMin et anMax).
Les données sont saisies par un formulaire qui renvoie les variables à Recherche.php
Ma requête est la suivante :
$resultat = mysql_query ("SELECT * FROM refs_tbl WHERE titre LIKE '%$titre%'"
. " AND description LIKE '%$description%'"
." AND date BETWEEN '$anMin' AND '$anMax'"
, $connexion);
L'affichage des résultats se fait par :
while ($docs=mysql_fetch_object ($resultat))
{
echo '<tr>';
print $titre=$docs->titre;
[...]
Les défauts sont multiples :
- ça fonctionne mais pas si j'utilise deux mots dans le formulaire ;
exemple : je cherche chateau seul OK ; sable seul OK ; chateau de sable NON
- On m'a déconseillé le SELECT * (ça Ok je peux changer facilement en mettant les champs qui m'interressent)
- On m'a dit que c'est 'dangereux' à cause des risques d'injection de codes malveillants -> dans ce cas, puis-je traiter les chaines saisies dans le formulaire avant l'execution de la requete ?
- Ce qui est le plus difficile pour moi, on m'a conseillé d'utiliser la recherche avec MATCH et AGAINST ; mais je n'ai pas réussi à faire quelquechose de fonctionnel
Pourriez-vous me donner un exemple pour :
Je cherche dans la $table, dans les champs description et titre, ce qui ressemble à $saisie ? et affichage de résultat ?
Un grand merci d'avance à tous.
Nico.
je débute en programmation php & mySQL, et j'aurai besoin de conseils...
Ma base est constituée de champs titres, description, date (etc.) et je souhaite pouvoir faire une recherche sur titre / description et par chronologie (anMin et anMax).
Les données sont saisies par un formulaire qui renvoie les variables à Recherche.php
Ma requête est la suivante :
$resultat = mysql_query ("SELECT * FROM refs_tbl WHERE titre LIKE '%$titre%'"
. " AND description LIKE '%$description%'"
." AND date BETWEEN '$anMin' AND '$anMax'"
, $connexion);
L'affichage des résultats se fait par :
while ($docs=mysql_fetch_object ($resultat))
{
echo '<tr>';
print $titre=$docs->titre;
[...]
Les défauts sont multiples :
- ça fonctionne mais pas si j'utilise deux mots dans le formulaire ;
exemple : je cherche chateau seul OK ; sable seul OK ; chateau de sable NON
- On m'a déconseillé le SELECT * (ça Ok je peux changer facilement en mettant les champs qui m'interressent)
- On m'a dit que c'est 'dangereux' à cause des risques d'injection de codes malveillants -> dans ce cas, puis-je traiter les chaines saisies dans le formulaire avant l'execution de la requete ?
- Ce qui est le plus difficile pour moi, on m'a conseillé d'utiliser la recherche avec MATCH et AGAINST ; mais je n'ai pas réussi à faire quelquechose de fonctionnel
Pourriez-vous me donner un exemple pour :
Je cherche dans la $table, dans les champs description et titre, ce qui ressemble à $saisie ? et affichage de résultat ?
Un grand merci d'avance à tous.
Nico.
-

Patrice A. - WRInaute passionné

- Messages: 2415
- Inscription: 11 Fév 2005
Re: Aide pour optimiser l'écriture d'une requete PHP/MYSQL
the386mmx a écrit:- On m'a dit que c'est 'dangereux' à cause des risques d'injection de codes malveillants -> dans ce cas, puis-je traiter les chaines saisies dans le formulaire avant l'execution de la requete ?
Utilise la fonction PHP mysql_real_escape_string() qui est faite justement pour éviter ces codes injectés.
Pour match() against(), fais une recherche sur les clefs FULLTEXT, on en a même parlé récemment sur WRI.
3 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Aide php/mysql requête svp
- Optimiser requête Mysql
- Optimiser une requete MySQL
- Comment optimiser une requete mysql/sql?
- aide requete MYSQL
- Requete Mysql AIDE svp !
- Aide pour requête MySQL
- Aide requête MySQL avec count
- Aide pour une requête MySQL
- [PHP/MySQL] Excepter une valeur dans un requête SQL en PHP
- Google API : guide de développement de l'API Google - 20-09-2002
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Les différents systèmes de mise en cache des données - 16-08-2010
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- WebRankInfo lance un forum rédaction et référencement - 17-04-2009
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités
