Realizamos una función que recibe una fila de un conjunto de registros venido desde una base de datos y declara variables globales con todos los datos de la fila.
Las variables globales tendrían como nombre el mismo del campo (que es el mismo nombre que la columna de la tabla asociada a ese dato) y como valor, el dato que guarda esa fila en la columna determinada.
Nota: Este artículo es similar a otro en el que se realiza un recorrido genérico a las variables recibidas por POST. Las explicaciones de ese artículo pueden venir bien para comprender mejor este. |
Para una tabla como esta:
id_cliente | nombre_cliente | telefono_cliente |
1 | Pepe | 90 000 00 00 |
2 | Juan | 99 888 88 88 |
3 | María | 999 99 99 99 |
Si la función recibiera una fila cualquiera, se generarían variables con nombres id_cliente, nombre_cliente y telefono_cliente y sus valores serían los de esa fila en concreto. Para la fila 1, se generarían las variables:
id_cliente=1
nombre_cliente="Pepe"
telefono_cliente="90 000 00 00"
El recorrido será genérico, por lo que servirá para cualquier tabla, con cualquier número y nombre de las columnas. Las variables generadas serán siempre las columnas que existan, con los valores de la fila que se haya recibido por parámetro.
Esta función es muy útil para recibir los datos de una fila y meterlos en variables globales, para luego operar con ellos. Como el recorrido es genérico, da igual el número, nombre y tipo de los campos que se van a meter en las variables.
function recibe_fila($fila){
foreach($fila as $nombre_campo => $valor){
if (gettype($nombre_campo)!="integer"){
$asignacion = "\$GLOBALS[\"" . $nombre_campo . "\"]='" . $valor . "';";
eval($asignacion);
//echo $asignacion . "<br>";
}
}
}
Un ejemplo de uso de esta función
Veamos cómo utilizar esta función para recibir los datos de una fila. Se supone que antes de ejecutar estas líneas se debe haber abierto una conexión con la base de datos. También se supone que después de ejecutar este código, se debería cerrar esa conexión con la base de datos.
$ssql="select * from cliente where id_cliente=2";
$rs=mysql_query($ssql);
$fila=mysql_fetch_array($rs);
recibe_fila($fila);
Después de estas líneas, se habrán creado las variables globales con los datos de la fila extraída de la tabla cliente, una variable para cada una de las columnas de la fila.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...