L'errore madornale è:
Codice PHP:
$campi = ... // qui esegui la query e recuperi i valori in modo da averli in un vettore 
Dai il valore a $campi ma non può essere una query deve essere il risultato della query.
Il tuo db è mysql?
perchè nella query nome e campo sono tra apici?
Io non mi ricordo le istruzioni utilizzate con mysql ma con quelle di racle dovresti scrivere:

Codice PHP:
$query=oci_parse($con,"select nome from campi order by nome");
oci_execute($query);
$i=0;
while(
$riga=oci_fetch_array($queryOCI_NUM OCI_RETURN_NULL)){
$campi[$i]=$riga[0];
}
$totale_colori=sizeof($colori); 
echo(
"<select name='campo'>"); 
echo(
"<option value=''>
"
); //questa riga la metti soltanto se vuoi che il menu a tendina inizi con un volore nullo e non direttamente con il primo dei colori 
for($i=0;$i<$totale_colori;$i++){ 
 echo(
"<option value='$colori[$i]'>".$colori[$i]."
"
); 

echo(
"</select>");