Gamesvideo Posté 27 Septembre 2005 Partager Posté 27 Septembre 2005 Bonjour Voici mon problème, je dois améliorer un script PHP qui sert de moteur de recherche des profils pour un site de rencontre, et lorsque l'on séléectionne la région France, le script doit chercher dans tous les profils ce qui correspondent aux régions francaises. Jusque la j'y suis arrivé mais le probleme, et cela arrive que si l'on cherche pour la France, les autres critères de recherche comme l'age, le sexe, etc... ne sont ensuite plus pris en compte, j'ai beau regarder le script normalement ca devrait fonctionner mais ce n'est pas le cas. Si vous puissez m'aider, ce serait génial. Voici le code : if (!empty($_POST['je_cherche']) && !empty($_POST['age_min']) && !empty($_POST['age_max']) && !empty($_POST['region'])) { $annee_min = date('Y') - $_POST['age_max']; $annee_max = date('Y') - $_POST['age_min']; // requete avec l'utilisation de la détermination$requete_recherche = "SELECT `pseudo`, `sexe`, `naissance_jour`, `naissance_mois`, `naissance_annee`, `region`, `photo`, `photo_ext` FROM `informations` WHERE (`naissance_annee` BETWEEN '" . $annee_min . "' AND '" . $annee_max . "') ";if ($_POST['je_cherche'] != 'indifférent') { $requete_recherche .= "AND `sexe` = '" . $_POST['je_cherche'] . "' "; } $regions_array = array('belgique', 'suisse', 'luxembourg', 'canada', 'angleterre', 'espagne', 'autres'); if ($_POST['region'] != 'france') { if (in_array($_POST['region'], $regions_array)) { $requete_recherche .= "AND `region` = '" . $_POST['region'] . "' "; } else { $requete_recherche .= "AND `region` = '" . $_POST['region'] . "' AND `region` != 'belgique' AND `region` != 'suisse' AND `region` != 'luxembourg' AND `region` != 'canada' AND `region` != 'angleterre' AND `region` != 'espagne' AND `region` != 'autres'"; } }if ($_POST['region'] = 'france') {$requete_recherche .= "AND `region` = 'alsace' OR `region` = 'aquitaine' OR `region` = 'auvergne' OR `region` = 'basse-normandie' OR `region` = 'bourgogne' OR `region` = 'bretagne' OR `region` = 'centre' OR `region` = 'corse' OR `region` = 'champagne-ardenne' OR `region` = 'dom-tom' OR `region` = 'franche-comté' OR `region` = 'haute-normandie' OR `region` = 'ile-de-france' OR `region` = 'languedoc-roussillon' OR `region` = 'limousin' OR `region` = 'lorraine' OR `region` = 'midi-pyrénées' OR `region` = 'monaco' OR `region` = 'nord-pas-de-calais' OR `region` = 'pays-de-la-loire' OR `region` = 'picardie' OR `region` = 'poitou-charentes' OR `region` = 'provence-alpes-côte d\'azur' OR `region` = 'rhône-alpes'";} Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
NorSeb Posté 28 Septembre 2005 Partager Posté 28 Septembre 2005 Salut, Tu es certain que ta requete marche ? Je veux dire : tu n'as pas d'erreur mysql ? Pour le savoir tu peux lancer un mysql_error() après ta requete. Lien vers le commentaire Partager sur d’autres sites More sharing options...
spin0us Posté 28 Septembre 2005 Partager Posté 28 Septembre 2005 Le problème c'est que tu enchaines AND et OR sans parenthèses pour les séparer. Du coup tes autres critères sont zappés. Quand tu ajoute la partie pour la france, fait un AND ( ... OR ... OR ... OR ... ), et la ca devrait mieux passer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Gamesvideo Posté 28 Septembre 2005 Auteur Partager Posté 28 Septembre 2005 Merci spinOus, maintenant ca marche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant