Función en PHP para recuperar registros a una etiqueta select

Ya he visto en varios foros a personas preguntando como poder recuperar registros de una base de datos MySQL a un campo de selección (<SELECT>), con esto lo que podemos hacer es por ejemplo desde en un formulario de registro, permitir a el usuario seleccionar su ciudad:

<?php
//Brian Urban - http://www.brianur.info
function genera_select($nombre,$id,$tabla,$campo_visual,$campo_valor,$default=0){
 $sql="select $campo_valor, $campo_visual from $tabla order by $campo_visual";
 $result= mysql_query($sql);
 echo "<select name='$nombre' id='$id'>";
 echo "<option value='0'>Seleccione opcion</option>";
 while ($row=mysql_fetch_assoc($result)){
 $id= $row[$campo_valor];
 $texto= $row[$campo_visual];
 $sel="";
 if ($default==$id){
 $sel="Selected";
 }
 echo "\n <option value='$id' $sel>$texto</option>";
 }
 echo "</select>";
}
?>

Continuar leyendo…