Ciao a tutti
avrei bisogno di scrivere una pagina search in PHP con le seguenti funzionalità, faccio un esempio:

l'utente ha i seguenti tre campi di ricerca, che puntano a tre tabelle diverse in DB MySQL

codice:
CHI
animali   |    cane     |      taglia_media
animali   |    cane     |      taglia_piccola
animali   |    balena
oggetti   |    casa
oggetti   |    frigorifero
   
DOVE SI TROVA
casa
mare

GENERE
maschio
femmina
nessuno
devo fare in modo che prima di inviare la ricerca, la selezione debba essere guidata, ovvero se ad esempio ha selezionato in

'CHI' il valore
'animali | balena'

quando apre il secondo campo 'DOVE SI TROVA'
non deve comparire la voce 'casa', ma solo quella 'mare'

e quando apre la voce del campo di ricerca 'GENERE'
non deve comparire la voce 'nessuno' (che sarebbe invece applicabile a 'casa' o 'frigorifero')

solo a questo punto può cliccare su 'cerca' e la pagina PHP invia la query SQL al DB.

ovviamente una ricerca del tipo 'frigorifero - mare - maschio' non avrebbe nessun senso, in quanto non esistono corrispondenze nel database, quindi io devo fare in modo che se ha selezionato nel primo campo 'oggetti | frigorifero' , nel secondo non venga visualizzata l'opzione 'mare' e così via….

Ulteriore complicazione:
come per il primo campo ci sono elementi che hanno un livello di profondità di tre quali
animali | cane | taglia media
altri ne hanno solo due
oggetti | casa
questo può succedere in tutti i campi
ad esempio potrebbe essere proposta la selezione in 'DOVE SI TROVA'
casa | in montagna
casa | al mare

In prima battuta l'utente vede solo la voce animali / oggetti, solo se seleziona 'animali' allora compaiono cane / balena, e solo se seleziona 'cane' compaiono taglia_media / taglia_piccola

Spero che l'esempio sia chiaro; purtroppo non posso cambiare la struttura del DB, ovviamente i dati solo solo a titolo di esempio
grazie in anticipo per l'aiuto