Buona sera a tutti. Sono costretto ad assillarvi di nuovo con un mio dilemma.

Allora, io ho un form che invia dei dati ad un database. Tra questi campi c'è un menù a tendina che limita la scelta ad alcune voci recuperate da una tabella del mio db.

Quindi nella pagina del form faccio una prima query per generare dinamicamente la mia select.
Leggendo qua e la nel forum ho capito che si può facilmente creare un form fittizio avente la stessa action "ufficiale" e modificare quindi i dati. Il mio menù a tendina potrebbe quindi diventare un semplice campo di testo in cui uno invia ciò che gli pare.

Devo perciò validare il mio input. Se ho capito bene è sufficiente che verifichi che il valore inserito rientri tra quelli plausibili.
Quindi faccio così, mi creo un array con le voci consentite

while ($row = mysql_fetch_assoc($queryValoriAmmessii) )
$valoriAmmessi[] = $row['valoreAmmesso'];

recupero il valore dal form
$valore = in_array($_POST['valore'],$valoriAmmessi) ? $_POST['valore'] : exit('valore non ammesso');

Arrivo al punto.
1) E' giusto il mio ragionamento?
2) Devo fare per forza due volte la stessa query, una prima volta per crearmi il menù a tendina e una seconda volta per accertarmi che il valore sia valido?
Notare che non posso usare un array perchè la select può essere modificata dall'amministratore del sito e quindi le sue voci possono aumentare e non so a priori di quali elementi l'array sarà composto.

Scusate se mi sono dilungato ma volevo essere abbastanza chiaro.
Attendo come sempre i vostri preziosi consigli.