Raga sto motore di ricerca si sta rivelando piu tosto di quanto pensassi, ho un due tabelle:
codice:
tabella utenti:
campi ( id, nome, cognome, citta, regione, data_nascita, data_registrazione, data_ultima_modifica, email, password )
tabella annunci_attivi:
campi (id, id_utente, data_inserimento, categoria, titolo, descrizione, prezzo, nome_foto, dimensione_foto)
ho un form con un campo text che preleva la parola chiave e 3 campi select obbligatori
Codice PHP:
<form name="cerca_annunci" action="cerca_annunci.php" method="post" >
<input type="text" name="parola_annuncio" size="40" />
<select name="categoria" >..............</select>
<select name="modprovincia" >
<option value="Tutte le provincie">Tutte le provincie</option>
<option value="agrigento">Agrigento</option>
......
</select>
<select name="modregione" >
<option value="Tutta Italia">Tutta Italia</option>
<option value="abruzzo">Abruzzo</option>
......
</select>
<input name="cerca_annuncio" type="submit" value=" cerca" title="cerca annuncio" width="89" height="17">
</form>
e fin qui ci siamo, i problemi li incontro quando mi trovo nella pagina:
cerca_annunci.php
ecco il codice
Codice PHP:
//ottieni risultati dal post
$parola_annuncio = mysql_real_escape_string($_GET['parola_annuncio']);
$categoria_annuncio = mysql_real_escape_string($_GET['categoria']);
$citta_annuncio = mysql_real_escape_string($_GET['modprovincia']);
$regione_annuncio = mysql_real_escape_string($_GET['modregione']);
//situazione in cui tutti i campi del form vengono compilati
$query_cerca_annunci = mysql_query("SELECT annunci_attivi.id_utente, annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria, MATCH(annunci_attivi.titolo, annunci_attivi.descrizione, annunci_attivi.categoria)
AGAINST('+$regione_annuncio +$citta_annuncio +$categoria_annuncio $parola_annuncio' IN BOOLEAN MODE)
as score FROM annunci_attivi
INNER JOIN utenti ON annunci_attivi.id_utente = utenti.id
WHERE MATCH(utenti.citta, utenti.regione) AGAINST('+$regione_annuncio +$citta_annuncio +$categoria_annuncio $parola_annuncio'
IN BOOLEAN MODE) ORDER BY score DESC");
//se la query funziona
if($query_cerca_annunci){
$conta_righe_annunci_trovati = mysql_num_rows($query_cerca_annunci);
if($conta_righe_annunci_trovati > 0){
$id_utenti_annunci = array();
$id_annunci = array();
$categorie_annunci = array();
$prezzi_annunci = array();
$citta_annunci = array();
$regioni_annunci = array();
$titoli_annunci = array();
$descrizioni_annunci = array();
$i = 0;
while($rows_annunci_trovati = mysql_fetch_array($query_cerca_annunci)){
$i++;
$id_annunci[$i] = $rows_annunci_trovati['id'];
$categorie_annunci[$i] = $rows_annunci_trovati['categoria'];
$prezzi_annunci[$i] = $rows_annunci_trovati['prezzo'];
$citta_annunci[$i] = $rows_annunci_trovati['citta'];
$regioni_annunci[$i] = $rows_annunci_trovati['regione'];
$titoli_annunci[$i] = $rows_annunci_trovati['titolo'];
$descrizioni_annunci[$i] = $rows_annunci_trovati['descrizione'];
}
echo $citta_annunci[1];
}else{
echo 'Nessun annuncio trovato';
}
}else{
echo 'La query non è andata a buon fine';
}
non so dirvi se la query è scritta bene so che non mi manda piu nel ramo else dove stampavo
Codice PHP:
echo 'La query non è andata a buon fine';
so però che adesso mi da i seguenti errori:
Codice PHP:
Notice: Undefined index: id in C:EasyPHPwwwaaacerca__annunci.php on line 76
Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77
Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78
Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79
Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80
Notice: Undefined index: id in C:EasyPHPwwwaaacerca_annunci.php on line 76
Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77
Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78
Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79
Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80
Notice: Undefined index: id in C:EasyPHPwwwaaacerca_annunci.php on line 76
Notice: Undefined index: categoria in C:EasyPHPwwwaaacerca_annunci.php on line 77
Notice: Undefined index: prezzo in C:EasyPHPwwwaaacerca_annunci.php on line 78
Notice: Undefined index: citta in C:EasyPHPwwwaaacerca_annunci.php on line 79
Notice: Undefined index: regione in C:EasyPHPwwwaaacerca_annunci.php on line 80
credo che quando si effettua una join non si estrapolano i dati in questo modo
Codice PHP:
while($rows_annunci_trovati = mysql_fetch_array($query_cerca_annunci)){
$i++;
$id_annunci[$i] = $rows_annunci_trovati['id'];
$categorie_annunci[$i] = $rows_annunci_trovati['categoria'];
$prezzi_annunci[$i] = $rows_annunci_trovati['prezzo'];
$citta_annunci[$i] = $rows_annunci_trovati['citta'];
$regioni_annunci[$i] = $rows_annunci_trovati['regione'];
$titoli_annunci[$i] = $rows_annunci_trovati['titolo'];
$descrizioni_annunci[$i] = $rows_annunci_trovati['descrizione'];
}
qualcuno sa come fare?