Originariamente inviato da Dascos
codice:
SELECT DISTINCT opere.id, opere.titolo, opere.thumb 
FROM opere JOIN tags ON opere.id = tags.opera 
WHERE (
(opere.titolo LIKE '%%') or 
((data_pubblicazione >= '') and (data_pubblicazione <= '')) or 
(opere.publisher LIKE '%%') or 
(opere.categoria LIKE '%varie%')
)
diventa

codice:
SELECT DISTINCT opere.id, opere.titolo, opere.thumb 
FROM opere JOIN tags ON opere.id = tags.opera 
WHERE (
(opere.titolo LIKE '%%' and opere.titolo NOT NULL) or 
((data_pubblicazione >= '') and (data_pubblicazione <= '')) or 
(opere.publisher LIKE '%%'  and opere.publisher NOT NULL) or 
(opere.categoria LIKE '%varie%')
)
In realtà sarebbe meglio fare i controlli lato PHP...se il campo del form che usi nella prima like è vuoto, valorizza a qualcosa di "impossibile" tipo "#@[]£", idem per le altre ...
Ci sono modi decisamente migliori di quest'ultimo che ti ho detto, ma almeno è un inizio..
Scusami, ho visto dopo il tuo messaggio.
Immagino intendessi IS NOT NULL comunque, vero? Grazie comunque dell'aiuto e del consiglio!