codice:
<?php
// Creazione dinamica della clausola WHERE
$whereclause = "";
if ($_GET['inforequest']=="true") {
foreach($_POST as $campo => $valore) {
if ($valore != "") {
$whereclause .= $campo." = '".$valore."' AND ";
}
}
if (strlen($whereclause) >= 4) { //almeno un "AND " è stato scritto.
$whereclause = substr($whereclause, 0, strlen($whereclause)-4);
echo("Clausola WHERE: ".$whereclause);
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Esempio per HTML.IT</title>
</head>
<body>
<form name="form1" method="post" action="queryfields.php?inforequest=true">
<h2>Ricerca nel database:</h2>
Autore:
<input name="autore" type="text" />
Titolo :
<input name="titolo" type="text" />
Editore:
<input name="editore" type="text" />
Anno:
<input name="anno" type="text" />
Prezzo:
<input name="prezzo" type="text" />
<input type="submit" value="Submit">
</p>
</form>
</body>
</html>
in $whereclause ti trovi solo la possibile clausola WHERE... butta via tutto l'output che ho messo io (solo a scopo dimostrativo) e costruisci la tua query... qualcosa del genere
codice:
$sql = "SELECT * FROM dati WHERE $whereclause";
PS: in fase di debug conviene sempre fare gli echo di tutte le variabili che generi/utilizzi per verificare esattamente che cosa si sta "trasmettendo" realmente