Buona domenica a tutti!
Oggi mi trovo a lavorare su un motore di ricerca per un db in mysql. Ho una tabella con 6 colonne e un form con 6 campi di testo.Se l'utente digita un autore nel campo autore la ricerca darà come risultato la lista dei libri con quell'autore. Se uno cerca l'autore e il prezzo in euro dovrà trovargli solo i libri con quell'autore e quel prezzo. Spero di essermi spiagato bene.
Ho provato a buttare giù uno script ma non funziona:
<html>
<body>
<form name="form" action="searche.php" method="post">
Argomento:<input type="text" name="argomento" size="22"/>
Autore:<input type="text" name="autore" size="22"/>
Editore:<input type="text" name="editore" size="22"/>
Luogo/anno:<input type="text" name="luogo" size="22"/>
Legatura:<input type="text" name="legatura" size="22"/>
Euro:<input type="text" name="euro" size="22"/>
<input type="submit" name="Submit" value="Cerca"/><input type="reset" name="reset" value="Formatta campi"/>
</form>
<?php
$argomento=$_POST['argomento'] ;
$autore=$_POST['autore'] ;
$editore=$_POST['editore'] ;
$luogo=$_POST['luogo'] ;
$legatura=$_POST['legatura'] ;
$luogo=$_POST['euro'] ;
if($argomento==true){$arg="argomento=$argomento AND ";}
else {$arg="";}
if($autore==true){$au="autore=$autore AND ";}
else {$au="";}
if($editore==true){$ed="editore=$editore AND ";}
else {$ed="";}
if($luogo==true){$lu="luogo=$luogo AND ";}
else {$lu="";}
if($legatura==true){$leg="legatura=$legatura AND ";}
else {$leg="";}
if($euro==true){$eu="euro=$euro";}
else {$eu="";}
$cerca= $arg.$au.$ed.$lu.$leg.$eu;
$db = mysql_connect("friend","root","pinoto") or die ("Impossibile connettersi al Database");
mysql_select_db("libri") or die("Impossibile selezionare il Database");
$sql = mysql_query("SELECT * FROM dati WHERE ($cerca)",$db);
while($eccolo = mysql_fetch_array($sql))
{echo "Autore:".$eccolo['autore']."
Argomento:".$eccolo['argomento']."
Editore:".$eccolo['editore']."
Legatura:".$eccolo['legatura']."
Luogo/anno:".$eccolo['luogo']."
Euro:".$eccolo['euro']."
";
}
?>
</body>
</html>
L'alternativa è uno switch o un if ma il prblema è che su 6 campi sono 64 possibilità diverse e fare 64 if o 64 condizioni switch tempo rallenti lo script.Forse si può trovare un modo con un ciclo ma non mi viene in mente nulla.Qualcuno ha idee?
Ringrazio in anticipo e buona domenica a tutti!