jueves, 13 de agosto de 2009

Data Drop Down en PHP

Hola, esta vez publico una sencilla función para renderear datos a un objeto "select" o "drop down" HTML, desde una consulta a una base de datos MySql, por medio de PHP.

Esto nos puede ser muy util, a la hora de traer los datos, al llamar simplemente a una función, en lugar de tener que estar recorriendo los registros de la consulta, adecuando la impresión y codificando el HTML cada vez.

El código de la función es:


Codigo PHP
<?php
/**
* Funcion de Data Drop Down.
*/
function DataDropDown($id,$rs,$val,$display)
{
if( $rs )
{
$select = '<select id="' . $id . '">';
while($row = $this->mysql_fetch_array($rs))
{
$select .= '<option value="' . $row[$val] . '">' . $row[$display] . '</option>';
}
$select .= '</select>';
echo $select;
}
else

{
echo mysql_error($Conn);
}
}


?>




El uso de la función quedaría:


Codigo PHP
<?php


$Conn = mysql_connect("tuserverurl","tuusuario","tupassword",TRUE) or die("Error de conexion:" . mysql_error($Conn));
mysql_select_db("tubasededatos",$Conn);

$sqlqry = "SELECT Campo1 as Folio,

Campo2 as Descripcion
FROM TuTabla;";


$rs = mysql_query($sqlqry,$Conn);

if( $rs )
{
echo DataDropDown("MyDataDropDown",$rs,"Folio","Descripcion");
}
else

{
echo "Error en la conexion con MySQL Server:" . mysql_error($Conn);
}

?>




Lo cual nos daría por resultado, por ejemplo, si se consulta una tabla de "Marcas" como ejemplo:



Como se puede observar, el ahorro de código al llamar a la función en una línea, en comparación con el recorrido de registros es significativo, por lo que es una función realmente útil para aplicaciones con formularios que contengan selecciones multiples.

Happy coding!