Moteur de recherche

Signaler
Messages postés
171
Date d'inscription
samedi 4 décembre 2004
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Salut, je cherche à faire un moteur de recherche avec plusieurs champs, de ce genre :











Je sais qu'il faut le faire avec une requete sql du type



SELECT * FROM matable WHERE prenom LIKE '".$_POST['prenom']."' ... etc.



Mais si un champ est " vide ", celui ci doit tout prendre en compte... (tous les prénoms, tous les ages...)

Et je ne vois pas trop comment faire la totalité de celui ci...



Si vous pouvez m'aider à faire la requete avec ces 3 champs :p



Merci beaucoup



Tilix

2 réponses

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
8
Salut,



A l'emporte pièce... je dirais:



if( isset($_POST['prenom'] and trim($_POST['prenom']!='') ) {

$prenom = " prenom LIKE '".$_POST['prenom']."' ";

} else {

$prenom = '1';

}

// idem avec les autres champs...

$query = "SELECT FROM `matable` WHERE $prenom AND $nom AND ...";



Voila, c'est pas trés élégant les series de if-else... enfin bon. J'ai dis "à l'emporte pièce". NON MAIS!
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
t'as juste une recherche dans des champs assez simples...
quand tu recherches dans un champ un peu plus grand et que tu veux trouver des mots :

$req=mysql_query('SELECT
a.titre, COUNT(b.id_article) as limite,
((LENGTH(a.texte)-LENGTH(REPLACE(a.texte, "'.$search.
'","")))/'.strlen($search).') as length
FROM articles as a, articles as b
GROUP BY b.id_article<a.id_article
ORDER BY length
LIMIT 10;')

c'est une recherche dans les champs texte d'une table articles