1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <?
// connexion
include('secure/config.php');
pg_connect("host=$SQLhost user=$SQLlogin password=$SQLpass dbname=$SQLdbname")
or die("Impossible de se connecter");
// 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($lst_processeur)) { $choix[] = "processeur = '$lst_processeur'"; }
if(!empty($lst_hdd)) { $choix[] = "hdd = '$lst_hdd'"; }
if(!empty($lst_ram)) { $choix[] = "ram = '$lst_ram'"; }
if(!empty($lst_cg)) { $choix[] = "cg = '$lst_cg'"; }
if(!empty($lst_ecran)) { $choix[] = "cg = '$lst_ecran'"; }
// 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]." ";
}
// $critere = implode(" and ", $choix);
// 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
$query = "SELECT * FROM ordinateur WHERE $critere ORDER BY prix";
}
// 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
{
$query = "SELECT * FROM ordinateur ORDER BY prix";
}
print_r($_POST);
$result = pg_query($query);
pg_close();
while($ligne = pg_fetch_array($result)){
?> |