Aller au contenu

Problèmes avec un script php


Sujets conseillés

Posté

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

Posté

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.

Posté

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 ;)

Veuillez vous connecter pour commenter

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



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