Filtre php avec plusieurs listes déroulantes

Résolu/Fermé
Signaler
Messages postés
15
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
30 juillet 2009
-
Messages postés
15
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
30 juillet 2009
-
Bonjour,

Je deviens dingue car je n'arrive pas à trouver une solution à mon problème.
Je pense que certains d'entre vous ont la solution.

Voilà ce que je veux:
- faire une recherche avec plusieurs listes déroulantes.
- je veux faire que la recherche soit faite sur les critères sélectionnées dans les listes déroulantes.

Dans ce que j'ai fait, la recherche se fait mais pas pour les 2 critères.
Est ce que quelqu'un pourait m'aider?

Voici mon code:

<form method="post">
<p>
<select name="profondeur">
<option value="">----Profondeur----</option>
<option value="- de 10 m">- de 10 m</option>
<option value="de 11 à 49 m">de 11 à 49 m</option>
<option value="de 50 à 99 m">de 50 à 99 m</option>
<option value="de 100 à 149 m">de 100 à 149 m</option>
<option value="+ de 150 m">+ de 150 m</option>
</select>

</p>
<p>
<select name="distance_cote">
<option value="">----- Distance côtes -----</option>
<option value="- de 10 km" >- de 10 km</option>
<option value="de 10 à 20 km" >de 10 à 20 km</option>
<option value="de 20 à 40 km" >de 20 à 40 km</option>
<option value="de 40 à 50 km" >de 40 à 50 km</option>
<option value="+ de 50 km" >+ de 50 km</option>
</select>
<br><br><input type="submit" name="btsave" value="filtre" />
</p>
</form>
<?php
$conn = mysql_connect("localhost","root","") or die('Connection impossible : ' . mysql_error());
mysql_select_db("lcv", $conn);
if(isset($_POST['btsave']))
{

echo 'Vous avez choisi :</br></br> une profondeur '.$_POST["profondeur"].' </br> une distance des côtes '.$_POST["distance_cote"];
echo '</br></br>Résultats de la recherche : ';
//$var=mysql_query('select nom from infos where profondeur='.$_POST["profondeur"]);
?>
<br>
<?php
if(isset($_POST['profondeur']))
{
if($_POST["profondeur"]=='- de 10 m')
{
$var=mysql_query('select nom,profondeur from infos where profondeur<10');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['profondeur'].' m'.'</br>';
}

if($_POST["profondeur"]=='de 11 à 49 m')
{
$var=mysql_query('select nom,profondeur from infos where profondeur BETWEEN 10 AND 50');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['profondeur'].' m'.'</br>';

}
if($_POST["profondeur"]=='de 50 à 99 m')
{
$var=mysql_query('select nom,profondeur from infos where profondeur BETWEEN 49 AND 100');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['profondeur'].' m'.'</br>';
}
if($_POST["profondeur"]=='de 100 à 149 m')
{
$var=mysql_query('select nom,profondeur from infos where profondeur BETWEEN 100 AND 150');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['profondeur'].' m'.'</br>';
}
if($_POST["profondeur"]=='+ de 150 m')
{
$var=mysql_query('select nom,profondeur from infos where profondeur>150');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['profondeur'].' m'.'</br>';
}
}
if(isset($_POST['distance_cote']))
{
if($_POST["distance_cote"]=='- de 10 km')
{
$var=mysql_query('select nom,distance_cote from infos where distance_cote<10');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['distance_cote'].' km'.'</br>';
}

if($_POST["distance_cote"]=='de 10 à 20 km')
{
$var=mysql_query('select nom,distance_cote from infos where distance_cote BETWEEN 10 AND 50');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['distance_cote'].' km'.'</br>';

}
if($_POST["distance_cote"]=='de 20 à 40 km')
{
$var=mysql_query('select nom,distance_cote from infos where distance_cote BETWEEN 49 AND 100');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['distance_cote'].' km'.'</br>';
}
if($_POST["distance_cote"]=='de 40 à 50 km')
{
$var=mysql_query('select nom,distance_cote from infos where distance_cote BETWEEN 100 AND 150');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['distance_cote'].' km'.'</br>';
}
if($_POST["distance_cote"]=='+ de 50 km')
{
$var=mysql_query('select nom,distance_cote from infos where distance_cote>50');?><ul><?php
while($resultat=mysql_fetch_array($var))
echo $resultat['nom'].' : '.$resultat['distance_cote'].' km'.'</br>';
}
}
}
mysql_close();
?>

3 réponses

Messages postés
15
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
30 juillet 2009
5
Pour le post à 12:00:00, j'avoue que c'est assez dingue!

Le fichier est relativement lourd donc si des personnes sont intéressées qu'elles m'envoie un MP et je me ferai un plaisir de leur filer ma soluce.

Pour info, j'ai apporté beaucoup de modif

petit bout de code:

switch($_POST['tension_transfoplateforme']) 
			{
			case "1" : $where[] = "`tension_transfoplateforme` < 30"; 
			break;
			case "2" : $where[] = "`tension_transfoplateforme` BETWEEN 30 AND 100"; 
			break;
			case "3" : $where[] = "`tension_transfoplateforme` BETWEEN 100 AND 350"; 
			break;
			case "4" : $where[] = "`tension_transfoplateforme` BETWEEN 350 AND 500"; 
			break;
			case "5" : $where[] = "`tension_transfoplateforme` > 500"; 
			break;
			default: $where[] = "1=1"; 
			break;
			}
				$sql .= "WHERE ". implode(' AND ',$where);
		}


Puis il n'y a plus qu'à ...
2
Messages postés
15
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
30 juillet 2009
5
Résolu
1
Messages postés
567
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
28 juin 2016
61
Tu nous marques ce que tu as corrigé au cas ou d'autres personnes seraient dans le même cas que toi ?
(comment t'as faitspour poster à midi pile poil ??)
1