Salve...

Ho un problema riguardo a una funzione di ricerca che vorrei fare in php.
Sono alle prime armi con php, sto tentando di costruire una semplice comunità di scambio testi, sul modello d'una rete sociale.
con la possibilità di creare "Amicizie" tra gli utenti, di rendere alcuni contenuti visibili "solo agli amici".

Voglio inserire una funzione che mi permetta di ricercare una parola: ovviamente tale ricerca è da effettuarsi su tutti i contenuti marcati come "pubblici" e sui contenuti "visibili agli amici", di quegli utenti di cui sono amico... Non so se mi sono spiegato...

Il database è composto in questa maniera:

Database Amici
IdAmicizia IDutente IDAmico Accettata (1 sì - 0 no)
1 32 27 1
2 27 31 0
3 33 37 1
ecc..

Dove: IDutente e IDamico sono chiave esterna che punta agli username ed "Accetta" indica se la richiesta d'amicizia è stata accettata o è in pendenza.

Testi:

ID Titolo Testo Autore Visibilità

Dove:
nel campo autore c'è la chiave esterna al solito username
nel campo Visibilità si alterna la stringa "Tutti" o "SoloAmici" (avrei potuto mettere un numero, lo so, ma ormai :-p), che specifica le categorie di utenti che possono accedere a quei testi.

Sinceramente è da un po' che ci provo e mi sto incasinando tra i Join i Like e le Union... :-S

Devo forse fare una ricerca in due tempi?
Prima cercare tra quelli pubblici (e mettere il risultato in una variabile), poi cercare la stringa voluta tra i testi privati delle persone a cui sono amico...
ma mi sembra un po' complesso...