E' da poco che mi cimento con le query e sono giorni che mi sono bloccata.![]()
![]()
Ho un database con sei tabelle:
1) nome tabella: fondo campi: id_fondo nomefondo
2) nome tabella: genere campi: id_genere gen
3) nome tabella: dedica campi: id_dedica dedicamarone
4) nome tabella: autore campi: id_autore nome_aut cognome_aut
5) nome tabella: edizione campi: id_edizione luogo anno editore
6) nome tabella: libri campi: id id_fondo id_genere id_autore id_edizione titolo id_dedica nota
Ed io ho impostato la SELECT in questo modo:
SELECT libri.titolo, libri.nota,
autore.nome_aut, autore.cognome_aut,
edizione.editore, edizione.luogo, edizione.anno,
fondo.nomefondo,
genere.gen,
dedica.dedicamarone
FROM libri
INNER JOIN autore ON libri.id_autore = autore.id_aut
INNER JOIN edizione ON libri.id_edizione = edizione.id_edizione
INNER JOIN fondo ON libri.id_fondo = fondo.id_fondo
INNER JOIN genere ON libri.id_genere = genere.id_genere
INNER JOIN dedica ON libri.id_dedica = dedica.id_dedica
Ho impostato il ciclo while in questo modo:
while ($riga = mysql_fetch_array($rs)) {
$nome_autore = $riga['autore.nome_aut'];
$cognome_autore = $riga['autore.cognome_aut'];
$titolo_ = $riga['libri.titolo'];
$editore = $riga['edizione.editore'];
$luogo = $riga['edizione.luogo'];
$anno_ = $riga['edizione.anno'];
$fondo = $riga['fondo.nomefondo'];
$genere = $riga['genere.gen'];
$dedica = $riga['dedica.dedicamarone'];
ma non ottengo alcun risultato.
In realtà il mio obiettivo è costruire una query di ricerca FULL TEXT e quindi utilizzare MATCH e AGAINST. A tal fine avevo impostato la query in questo modo:
SELECT libri.titolo, libri.nota,
autore.nome_aut, autore.cognome_aut,
edizione.editore, edizione.luogo, edizione.anno,
fondo.nomefondo,
genere.gen,
dedica.dedicamarone
MATCH (libri.titolo,autore.nome_aut,autore.cognome_aut,e dizione.editore) AGAINST('$autore','$titolo','$edizione','$anno','$ riclibera' IN BOOLEAN MODE)
FROM libri
INNER JOIN autore ON libri.id_autore = autore.id_aut
INNER JOIN edizione ON libri.id_edizione = edizione.id_edizione
INNER JOIN fondo ON libri.id_fondo = fondo.id_fondo
INNER JOIN genere ON libri.id_genere = genere.id_genere
INNER JOIN dedica ON libri.id_dedica = dedica.id_dedica
WHERE MATCH(libri.titolo,autore.nome_aut,autore.cognome_ aut,edizione.editore) AGAINST('$autore','$titolo','$edizione','$anno','$ riclibera' IN BOOLEAN MODE)
ma ottengo come messaggio:
" Errore query database: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MATCH (libri.titolo,autore.nome_aut,autore.cognome_aut,e dizione.editore) AGAINST' at line 7"
C'è qualcuno disposto ad aiutarmi?
Grazie
Claudia