Ok, so you're saying you have an array of the result from "SELECT DISTINCT who FROM messages"
example...
$result = mysql_query("SELECT DISTINCT who FROM messages");
while(list($stuff_there[]) = mysql_fetch_array($result)){
}
$stuff_there is the array from the database.
You also need to "display the choices that aren't already used in the database".
Do you have an array of the available choices?
I mean you can use the function in_array()
if(in_array($some_choice,$stuff_there)){
//$some_choice was found in the DB
}else{
//$some_choice was not found in DB
}
Hope this helps