Aller au contenu

Problèmes avec un script php


Gamesvideo

Sujets conseillés

Bonjour :D

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

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...