Ciao a tutti, sto cercando di creare un motore di ricerca in full text per un sito di agenzia immobiliare che ha annunci si di vendita e di fitti ma ho riscontrato due problemi che proprio non riesco a risolvere per questo chiedo gentilmente aiuto agli esperti, la tabella nel database si chiama annunci ed e' cosi' formata:
Questo e' il form:
il codice e' questo:
il primo problema sta che se cerco ad esempio la località roma ed aggiunco il mumero delle camere e dei bagni la ricerca e' vuota se metto invece solo la località mi trova i risultatisia per gli annunci dei fitti che delle vendite, l'altro problema invece e' che se tengo la localita' roma per fitti e vendite non mi trova niente: Ragazzi vi chiedo aiuto perche non riesco proprio ad uscirne fuori.
Grazie
Codice:
CREATE TABLE `annunci` (
`idannuncio` int(11) NOT NULL AUTO_INCREMENT,
`localita` varchar(200) NOT NULL,
`bagni` text NOT NULL,
`camere` text NOT NULL,
PRIMARY KEY (`idannuncio`),
FULLTEXT KEY `localita` (`localita`,`bagni`,`camere`)
) ENGINE=MyISAM
Questo e' il form:
Codice:
<form method="post" action="cerca-annunci.php">
<div class='widget-section'>
<div class='inner'>
<label for="location">Località</label>
<input type="text" name='localita' id='location' class='input-block-level' placeholder="es. Ischia Porto, Casamicciola"/>
</div>
</div>
<div class='widget-section'>
<div class='inner'>
<label for="propertyType">Numero Camere</label>
<input type="text" name='camere' class='input-block-level' placeholder="es. 1,2,3"/>
</div>
</div>
<div class='widget-section'>
<div class='inner'>
<label for="bedrooms">Numero Bagni</label>
<input type="text" name='bagni' class='input-block-level' placeholder="es. 1,2,3,"/>
</div>
</div>
<section class='widget-buttons'>
<div class='inner'>
<button type="submit" class='btn btn-primary btn-large btn-block'><i class="icon-search icon-white"></i> CERCA</button>
</form>
il codice e' questo:
PHP:
<?
//recupero i valori via post dal precendete form di ricerca
$localita = $_POST['localita'];
$camere = $_POST['camere'];
$bagni = $_POST['bagni'];
//inizio il loop
require_once("config.php"); //connessione db
mysql_select_db("$db_name",$connessione);
//verisone più avanzata
$risultato = mysql_query("SELECT *, MATCH(localita, camere, bagni) AGAINST('$localita, $camere, $bagni') as score
FROM annunci
WHERE MATCH(localita, camere, bagni) AGAINST('$localita, $camere, $bagni')
ORDER BY score ASC");
//in caso di errore
if (!$risultato) {
exit ('<p> Errore mentre recuperavo i dati' . mysql_error() . '</p>');
}
if (mysql_num_rows($risultato) == 0) {
echo '<table align="center" class="clear" cellpadding="4" cellspacing="0" border="0" width="100%">';
echo '<td align=center class="require">NON CI SONO ANNUNCI INSERITI! RIPROVA LA RICERCA</td>';
echo '</table>';
} else
while ($row = mysql_fetch_array($risultato))
{
//stampo risultati a video come siete abituati
?>
Grazie