Version complète: sur le forum Webmaster Hub : Problèmes avec un script php
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Gamesvideo
Bonjour biggrin.gif

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 :

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
NorSeb
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.
spin0us
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 wink.gif
Gamesvideo
Merci spinOus, maintenant ca marche biggrin.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.