Aide pour optimiser l'écriture d'une requete PHP/MYSQL

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

the386mmx
Nouveau WRInaute
 
Messages: 2
Inscription: Jeu Mar 01, 2007 21:47

Aide pour optimiser l'écriture d'une requete PHP/MYSQL

Message le Jeu Mar 01, 2007 21:58

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.


Patrice A.
Modérateur
Modérateur
 
Messages: 2413
Inscription: Ven Fév 11, 2005 19:36

Re: Aide pour optimiser l'écriture d'une requete PHP/MYSQL

Message le Ven Mar 02, 2007 15:31

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.

the386mmx
Nouveau WRInaute
 
Messages: 2
Inscription: Jeu Mar 01, 2007 21:47

requete...

Message le Ven Mar 02, 2007 18:11

Ok, merci pour ces infos, je regarde à ça :-)

@+


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités