Filtre php avec plusieurs listes déroulantes

Résolu/Fermé
LCV Messages postés 15 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 30 juillet 2009 - 22 juil. 2009 à 10:09
LCV Messages postés 15 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 30 juillet 2009 - 30 juil. 2009 à 17:14
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();
?>
A voir également:

3 réponses

LCV Messages postés 15 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 30 juillet 2009 5
30 juil. 2009 à 17:14
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
LCV Messages postés 15 Date d'inscription mardi 30 juin 2009 Statut Membre Dernière intervention 30 juillet 2009 5
28 juil. 2009 à 12:00
Résolu
1
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
28 juil. 2009 à 12:04
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