Bonjour à toutes et à tous.

Voila, suite à un formulaire, je dois effectuer une recherche dans ma base.

Tout d'abord, le principe que j'ai mis en place est assez fastidieux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$sql = "SELECT * FROM " . $table;
if (($TTypeBien!="toutes"))
{
	$sql = $sql .  " WHERE type='" . $TTypeBien . "'";
}
else $sql = $sql . " WHERE type!='" . $TTypeBien . "'";
if (($TSurfMin!="")&&($TSurfMin!=""))
	$sql = $sql . " AND 'surface' BETWEEN " . $TSurfMin . " AND " . $TSurfMax;
if (($TPrixMin!="")&&($TPrixMax!=""))
	$sql = $sql . " AND 'prix' BETWEEN (". $TPrixMin . " AND " . $TPrixMax . ")";
	//WHERE prix BETWEEN (" . $TPrixMin . " AND " . $TPrixMax .") ";
if (($TVille!="toutes"))
	$sql = $sql . " AND ville='" . $TVille."'";
if ($cbBalconTerrase=="on")
	$sql = $sql . " AND (balcon='1' OR terrasse='1')";
if ($cbCaveGrenier=="on")
	$sql = $sql . " AND (cave='1' OR grenier='1')";
if ($cbAscenseur=="on")
	$sql = $sql . " AND (ascenseur='1')";
if ($cbParkingGarage=="on")
	$sql = $sql . " AND (parking='1' OR garage='1')";
if ($cbInterphone=="on")
	$sql = $sql . " AND (interphone='1')";
$sql = $sql . " ORDER BY reference";
Comme vous pouvez le voir, c'est assez primaire comme solution.

De plus, mes requête de recherche par "encadrement de valeur" ne fonctionnent pas.
Dans cette exemple, je devrai avoir un retour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT * FROM ic_bienavendre WHERE type!='toutes' AND 'prix' BETWEEN (175000 AND 178000) ORDER BY reference
Est-ce que quelqu'un pourrai m'aider à optimiser ma "construction de requête, mais surtout, me dire où ma syntaxe ne fonctionne pas?

Merci d'avance. Bonne continuation à tous