interrogare un dbase con più tabelle

mediasteno

Utente Attivo
25 Gen 2010
120
0
0
Sono alle prime armi con MySQL e ho proprio bisogno di un aiuto. Devo costruire una SELECT che permetta ad un utente di ricercare all'interno di un database un libro sulla base di chiavi ricerca da lui inserite in un form (www.bibliotecamarone.it/ricerca.php).
Il database è costituito da 6 diverse tabelle ed io ho impostato la SELECT in questo modo:
SELECT t1.titolo as c1, t1.nota as c2, t2.nome_aut as c3, t2.cognome_aut as c4, t3.editore as c5, t3.luogo as c6, t3.anno as c7, t4.nomefondo as c8, t5.genere as c9, t6.dedica as c10
FROM libri AS t1
LEFT JOIN autore AS t2 ON t1.id_autore = t2.id_aut
LEFT JOIN edizione AS t3 ON t1.id_edizione = t3.id_edizione
LEFT JOIN fondo AS t4 ON t1.id_fondo = t4.id_fondo
LEFT JOIN genere AS t5 ON t1.id_genere = t5.id_genere
LEFT JOIN dedica AS t6 ON t1.id_dedica = t6.id_dedica
WHERE (t1.titolo LIKE '%$titolo%') OR (t2.nome_aut LIKE '%$autore%') OR (t3.editore LIKE '%$edizione') OR (t3.anno LIKE '%$anno');

Sicuramente il mio errore è nell'aver impostato male dopo WHERE, c'è qualcuno che può darmi una mano? Anche rimandandomi a tutorial o manuali di studio.Grazie
 
Non mi genera nessun errore. Il mio problema è che cosi come ho impostato ora la query:
WHERE (t1.titolo LIKE '%$titolo%') AND (t2.nome_aut LIKE '%$autore%') AND (t2.cognome_aut LIKE '%$autore%') AND (t3.editore LIKE '%$edizione%') AND (t3.anno LIKE '%$anno%')";

mi restituisce i risultati corretti se effettuo la ricerca per titolo o/e edizione o/e anno. Invece per quanto riguarda la ricerca per autore mi dà come output che non è presente alcun libro anzichè restituirmi i libri di quell'autore. In più devo capire come impostare la condizione per ottenere i risultati in caso di ricerca libera
Grazie in anticipo
 

Discussioni simili