Salve a tutti,
sto cercando di creare un piccolo script che mi permetta di realizzare ricerche in diverse tabelle di un unico DB.
Ho 6 tabelle le quali hanno come chiave primaria "struttura". Ho provato a fare il lavoretto artigianalmente predisponendo nel form un <select> con name="database_name".
Nella query della pagina dei risultati (results.html - sto implementando anche il mod_rewrite!) ho riportato la variabile $database_name così: SELECT * FROM $database_name WHERE etcetera etcetera.
Il problema è proprio qui. Se seleziono nel <select> la prima opzione, inserendo la chiave di ricerca (name="input") il db risponde. Nel caso in cui inserisca la medesima chiave e nel <select> le opzioni successive, mi da errore.
Per essere più chiaro posto il codice:
Codice PHP:
Questo il codice del form
<form action="results.html" method="post">
<input type="text" size="20" name="input" value="Cerca Struttura..."><select name="database_name">
<option value="hotel">Hotel & Residence</option>
<option value="camping">Camping & Villaggi</option>
<option value="bed_breakfast">Bed & Breakfast</option>
<option value="agriturismo">Agriturismo</option>
<option value="case">Case Vacanze</option>
<option value="ristoranti">Ristoranti,Pizzerie,Pub</option>
</select>
<input type="submit" value="Cerca"> </form>
A questo punto scegliendo Hotel & Residence, con opportuna chiave, mi risponde correttamente dandomi il risultato che deve. Se però scegliessi ad esempio Camping & Villaggi mi da errore!
Questo il codice della pagina results.html (gli indirizzi delle pagine sono statici perchè sto cercando di implementare il mod_rewrite!)
Codice PHP:
Questo il codice di results.html
<? include("connessioni.inc.php");
if (trim($input)=="" OR trim($input)=="Cerca Struttura...")
echo"<h3>Attenzione: nessuna chiave da cercare inserita. Torna indietro.</h3>";
else
$db = mysql_connect($db_host, $db_user, $db_password);
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$keys = explode (", ", $input);
$query = "";
reset($keys);
while (list(,$parola) = each ($keys))
{
$parola = trim($parola);
if ($parola != "")
$query .="intestazione LIKE '%$parola%' OR descrizione LIKE '%$parola%'";
}
$query= "SELECT * FROM $database_name WHERE " . $query;
$result = mysql_query($query, $db);
#####################L'ERRORE ME LO DA A QUESTA RIGA
while ($row = mysql_fetch_array($result))
{
echo "<div><a href=\"scheda_$database_name/$row[struttura].html\">$row[intestazione]</a> $row[categoria]</h1>
$row[descrizione]</p></div>"; }
mysql_close();
?>
Mi auguro di essere stato chiaro. C'è qualcuno di buon cuore che mi fa sapere cosa sbaglio? E' mezza giornata che ci sto sbattendo la testa !