> Manuales > Taller de PHP

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.

Vamos a realizar una función para recibir todos los datos de una fila de un recordset (conjunto de registros extraídos de una base de datos, Mysql en el caso de este artículo) y declararlos como variables globales a la página. Se trata de una función que realiza un recorrido genérico a todos los datos de cualquier fila y cualquier recordset y va generando las variables globales para trabajar con esos datos.

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...

Manual