Ho una tabella mysql che contiene le news di 6 "gruppi di news" differenti.
Ogni "gruppo di news" contiene altri 3 "sottogruppi di news".
Quindi per fare un esempio lo schema sarà così:
gruppo news 1:
--> sottogruppo 1
--> sottogruppo 2
--> sottogruppo 3
gruppo news 2:
--> sottogruppo 1
--> sottogruppo 2
--> sottogruppo 3
gruppo news 3:
--> sottogruppo 1
--> sottogruppo 2
--> sottogruppo 3
...e via dicendo
La tabella mysql è così strutturata:
I campi sono: id, id_gruppo, id_sottogruppo, titolo_news, testo_news.
L'id è univoco della news, l'id_gruppo indica a quale gruppo principale appartiene la news, mentre l'id_sottogruppo indica a quale sottogruppo appartiene, che ovviamente sarà legato all'id_gruppo corrispondente.
Ora arrivo al problema.
Io mi trovo in questo ramo di news: "gruppo news 1" --> "sottogruppo 1"
Quindi vorrei fare una ricerca per parola chiave in mysql in modo che mi cerchi SOLO nelle righe che hanno id_gruppo = 1 e id_sottogruppo = 1 e poi la parola chiave può essere trovata o nel campo titolo, oppure nel campo testo.
Quindi i campi id_gruppo e id_sottogruppo devono essere obbligatori, mentre la ricerca basta che risulti vera in uno o in entrambi i campi titolo e testo.
Il fatto è che sto facendo casino con gli operatori logici AND ed OR.
Una query di esempio che ho provato era questa:
SELECT *
FROM `news`
WHERE `id_gruppo` =1
AND `id_sottogruppo` =1
OR `titolo_news` LIKE '%parola%'
AND `testo_news` LIKE '%parola%'
LIMIT 0 , 30
Così mi cerca si nel campo titolo e testo e basta che trovi qualcosa in uno dei due, ma se non trova nulla in questi campi (titolo e testo) mi restituisce lo stesso qualcosa, perchè risultano vere le query ai campi id_gruppo e id_sottogruppo!!!!
Mentre io vorrei che se mi trovasse una corrispondenza in id_gruppo, id_sottogruppo, ma non in titolo_news o testo_news, non restituisse nulla!
Sono stato abbastanza chiaro?
Thx