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 - https://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>"; } ?>
Parámetros:
$nombre: Nombre del select.
$id: ID del select.
$tabla: Nombre de la tabla de la base de datos.
$campo_visual: El campo en la base de datos que tiene el nombre de la ciudad en este caso.
$campo_valor: El campo del ID de la ciudad en la base de datos.
$default: Por defecto esta en 0, no es obligatorio darle un valor, en caso de que se quiera darle algún valor debe ser un numero. Lo que hace es asignar a un registro como el valor por defecto del select.
Ejemplo de uso de la función:
genera_select('ciudad','ciudad','ciudades','nombre','idciudad',3);
Pueden hacer las modificaciones que necesiten en su propio caso.
Saludos.
No me funciona., Debo estar haciendo algo mal. me podrias ayudar
Hola Mac, el código se debe actualizar porque alguna de las funciones ya no se utilizan. Revisa PDO:
http://php.net/manual/es/book.pdo.php
Excelente explicación, tenía un rato buscando y no había nada que pudiera ayudarme. Muchas gracias!
Muchas gracias, me resulto 100%, en la base de datos tengo una tabla con las ciudades guardadas y las muestro en el select de un formulario de registro, pero lo que quiero hacer es que caputre la ciudad seleccionada en el select y que al registrarse, que quede ese campo guardado en la tabla «usuarios» de la base de datos. Osea en resumen, mi pregunta es:
como capturar lo seleccionado en el SELECT y que quede ingresado en la base de datos. Te lo agradeceria mucho!. Saludos!