Recherche multi champs

cs_guev Messages postés 8 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 6 juin 2005 - 6 juin 2005 à 00:59
cs_guev Messages postés 8 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 6 juin 2005 - 6 juin 2005 à 22:56
bonjour

je réalise un moteur de recherche multi champs (environ 10) pour un site et ce qui me gène c'est que j'utilise AND dans ma requète et donc cela veut dire que tous les champs doivent être renseignés sinon le résultat est zéro. (si j'ai bien compris).
Si j'utilise OR c'est pas bon non plus car ma requète me sort tous les enregistrements.
Alors que dois-je utiliser pour que meme si juste 5 champs soient renseignés ma requète me sorte uniquement les résulats de ces champs ?
j'ai egalement deux champs ou j'utilise BETWEEN, pour l'age et la taille.

merci de votre aide

guev

4 réponses

cs_oxram Messages postés 40 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 19 juin 2005
6 juin 2005 à 10:12
ta requete serais la bienvenue pour y voir plus clair.

oxram
0
cs_guev Messages postés 8 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 6 juin 2005
6 juin 2005 à 11:23
<?php

$colname2_search = "-1";

if (isset($_GET["situation"])) {

$colname2_search = (get_magic_quotes_gpc()) ? $_GET["situation"] : addslashes($_GET["situation"]);

}

$colname_search = "-1";

if (isset($_GET['sexe1'])) {

$colname_search = (get_magic_quotes_gpc()) ? $_GET['sexe1'] : addslashes($_GET['sexe1']);

}

$age1_search = "-1";

if (isset($_GET['age1'])) {

$age1_search = (get_magic_quotes_gpc()) ? $_GET['age1'] : addslashes($_GET['age1']);

}

$age2_search = "-1";

if (isset($_GET['age2'])) {

$age2_search = (get_magic_quotes_gpc()) ? $_GET['age2'] : addslashes($_GET['age2']);

}

$taille1_search = "-1";

if (isset($_GET['taille1'])) {

$taille1_search = (get_magic_quotes_gpc()) ? $_GET['taille1'] : addslashes($_GET['taille1']);

}

$taille2_search = "-1";

if (isset($_GET['taille2'])) {

$taille2_search = (get_magic_quotes_gpc()) ? $_GET['taille2'] : addslashes($_GET['taille2']);

}

mysql_select_db($database_atoutcoeur, $atoutcoeur);

$query_search sprintf("SELECT * FROM membres WHERE sexe1 '%s' AND
situation = '%s' AND age BETWEEN '%s' AND '%s' AND taille BETWEEN '%s'
AND '%s'",
$colname_search,$colname2_search,$age1_search,$age2_search,$taille1_search,$taille2_search);

$search = mysql_query($query_search, $atoutcoeur) or die(mysql_error());

$row_search = mysql_fetch_assoc($search);

$totalRows_search = mysql_num_rows($search);

?>



voici ma requete générée par dreamweaver (je sais pas top). j'ai juste mis 6 champs



merci de votre aide

guev
0
cs_oxram Messages postés 40 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 19 juin 2005
6 juin 2005 à 14:00
il fau que tu cré plusieur requete et que si tel ou tel champs est renseigné tu balance la bone requete donc ten a plus de dix à faire. Moi ce que je te conseille c'est de faire une recherche avec au plus 3 champs car sinon ça va te faire tro de requete à faire déja avec 3 ten a 9 a faire normalement. donc avec 10 champs ten a 10 puissance 10 donc 100.

oxram
0
cs_guev Messages postés 8 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 6 juin 2005
6 juin 2005 à 22:56
Merci bcp pour la réponse !

Etant donné que je serais inccapable de faire une telle prog, serait-il possible de me faire un exemple concret avec deux ou trois requètes pour que je puisse y voir plus clair et je ferais ensuite le reste. de cette façon je pense apprendre bcp plus vite, car là je ne sais meme pas ou commencer.

encore merci

guev
0
Rejoignez-nous