$requete = "SELECT prix FROM tablePrix WHERE prix BETWEEN 1 AND 3";
un conseil ne met pas tes champs en texte mais en float ce sera plus simple pour gérer un prix (qui sera numérique) if($i > 0)
{
// requete de selection
$sql = "SELECT * FROM bdd WHERE $critere ORDER BY nom_fichier";
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
}
Code : Tout sélectionner
... WHERE $critere AND prix BETWEEN 1 AND 3 ORDER BY ...<?php
require_once("conf.php");
// connexion
$cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter");
$db = mysql_select_db("$bdd") or die("Impossible de se connecter");
if (mysql_connect ($host,$user,$pass))
{
echo 'Connexion réussie'; echo '<br>';
}
else
{
echo 'Connexion impossible...'.mysql_error(); echo '<br>';
}
// on récupère les critères sélectionnés
extract($_POST);
$i = 0;
// si la variable est présente, on lui affecte une place dans le tableau 'choix[]', qui nous servira ensuite à construire le WHERE de la requête.
if(!empty($type_bien)) { $choix[$i++] = "type_bien = '$type_bien'"; }
if(!empty($objet)) { $choix[$i++] = "objet = '$objet'"; }
if(!empty($province)) { $choix[$i++] = "ville = '$province'"; }
if(!empty($ville)) { $choix[$i++] = "ville = '$ville'"; }
if(!empty($indice)) { $choix[$i++] = "indice = '$indice'"; }
//recherche entre deux champs prix ajout ////////////////////////////////////////////
if (!empty( $_GET['prix']) AND !empty($_GET['prix1']))
{
$critereprix .= '`prix` BETWEEN '.$_GET['prix'].' AND '.$_GET['prix1'];
}
//////////////////////////////////////////////////////////////////////////////////
// on insère les éléments remplis dans une variable $critere, en commençant par la première occurrence, puis on boucle
$critere = $choix[0]." ";
for($j=1;$j<$i;$j++)
{
$critere .= " AND ".$choix[$j]." ";
}
// enfin on fait la requête si $i >0, ça veut dire qu'il y a des critères
if($i > 0)
{
// requete de selection
$sql = "SELECT * FROM immo WHERE $critere ORDER BY $critereprix";
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );
}
// si $i = 0, alors l'utilisateur n'a pas saisi de critère, là soit on fait la même requete mais sans "WHERE $critere", soit on lui demande de saisir au moins un critère.
else
{
$sql = "SELECT * FROM immo ORDER BY $critereprix";
}
//récupération avec mysql_fetch_array(), et affichage de nos résultats :
echo( "<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">\n" );
echo( "<tr>
<td><div align=\"center\">Bien</div></td>
<td><div align=\"center\">Objet</div></td>
<td><div align=\"center\">Province</div></td>
<td><div align=\"center\">Ville</div></td>
<td><div align=\"center\">Indice d'isolement</div></td>
<td><div align=\"center\">Prix</div></td>
</tr>" );
while( $result = mysql_fetch_array( $requete ) )
{
echo( "<tr>\n" );
echo( "<td><div align=\"center\">".$result["bien"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["objet"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["province"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["ville"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["indice"]."</div></td>\n" );
echo( "<td><div align=\"center\">".$result["prix"]."</div></td>\n" );
/*echo( "<td><div align=\"center\"><form method='post' action='telechargement.php'><input type='submit' value='Telechargement'/></form></div></td>\n" );*/
echo( "</tr>\n" );
}
echo( "</table><br>\n" );
?>
extract($_POST);
...
//recherche entre deux champs prix ajout ////////////////////////////////////////////
if (!empty( $_GET['prix']) AND !empty($_GET['prix1']))
{
$critereprix .= '`prix` BETWEEN '.$_GET['prix'].' AND '.$_GET['prix1'];
}
Et donc d'où surgit $critereprix....
$critere = $choix[0]." ";
for($j=1;$j<$i;$j++)
{
$critere .= " AND ".$choix[$j]." ";
}
// enfin on fait la requête si $i >0, ça veut dire qu'il y a des critères
if($i > 0)
{
$critere = " ";
// enfin on fait la requête si $i >0, ça veut dire qu'il y a des critères
if($i > 0)
{
$critere = $choix[0]." ";
for($j=1;$j<$i;$j++)
{
$critere .= " AND ".$choix[$j]." ";
....