Buongiorno a tutti,
ho creato un piccolo form di ricerca attraverso il quale vorrei estrarre il contenuto di un database...il form contiene solo tre voci di ricerca mentre i dati da estrarre sono di più ma tutti in relazione con le tre voci.
Questo è il codice del form
<div id="cerca">
Cerca un hotel
<form action='cerca.php?ricerca=ok' method='POST'>
Tipologia
<select name='cerca' type='text' >
<option selected=”selected”>Hotel</option>
<option>Bed & Breakfast</option>
<option>Casa Vacanze</option>
</select>
Localita'
<input type="text" name="cercalocalità" id="cercalocalità" />
<label for="cercalocalità"></label>
</p>
</p>
<input type='submit' value='Invia'>
</p>
</p>
</form>
Mentre il file cerca.php ha il seguente codice:
<?php
$db_host = "xxx";
$db_user = "xxx";
$db_password = "xxx";
$db_name = "xxx";
//connetto il database
$db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');
// recuperiamo il valore ricerca inviato con get
$ricerca = $_GET['ricerca'];
// vediamo se è stato inviato, e quindi uguale a ok
if ( $ricerca == 'ok' ) {
// recuperiamo ora cerca inviato con post
$cerca = $_POST['cerca'];
// vediamo se è stato compilato il campo
if ( $cerca == TRUE && $cerca != "" ) {
// ora vediamo se supera i tre caratteri
if ( strlen($cerca) >= 3 ) {
// ora depuriamo la stringa da cercare sul database
$cerca = mysql_real_escape_string(stripslashes($cerca));
// ricerca sul db
$query = "SELECT * FROM struttura WHERE citta LIKE '%$cerca%' OR indirizzo LIKE '%$cerca%' OR tipologia LIKE '%$cerca%'";
$risultato = mysql_query($query) or die (mysql_error());
$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");
$dentro_la_query= mysql_fetch_assoc($risposta);
if ($dentro_la_query == TRUE ) {
while($row= mysql_fetch_assoc($risultato)) {
$tipologia = $row['tipologia'];
$nome_struttura = $row['nome_struttura'];
$descrizione = $row['descrizione'];
$citta = $row['citta'];
$localita = $row['localita'];
// stampo i dati
echo "$tipologia
";
echo "Nome: $nome_struttura
";
echo "Descrizione : $descrizione
";
echo "Città: $provincia
";
echo "Localita': $localita
";
}
} else {
echo "Nessun termine alla ricerca trovato";
}
} else {
echo "Non hai compilato il modulo ricerca";
}
}
}
?>
Cliccando sul tasto cerca del form, ho notato che anche cambiando i dati per la ricerca, ottengo tutti i risultati del db, cosa sbaglio?
Inoltre, vorrei integrare questo script con la possibilità di visualizzare anche le immagini contenute nel database...come lo devo implementare??