Clase para administrar una base de datos
/*
Estoy creando una función para devolver registros. El problema es ... ¿cómo creo una función para devolver registros?.
Había pensado en devolverlos con un array de dos dimensiones. Por ejemplo, devolvería $array_devuelve[0] = "juan, pedro, omar, marcos" para el segundo campo.
Ésta es la función:
// Función para mostrar registros
function MostrarRegistros($servidor, $bd_usuario, $bd_contrasenia, $basededatos, $tabla, $campos) {
// Si se conecta al servidor de base de datos
if ($link = mysql_connect($servidor, $bd_usuario, $bd_contrasenia)) {
// Si se selecciona la base de datos
if ($sel_bd = mysql_select_db($basededatos, $link)) {
// Hace el query por todos los campos
$result = mysql_query("SELECT $campos FROM $tabla", $link);
$contador = 0;
// Por cada registro encontrado guardarlo en el array
while ($row = mysql_fetch_row($result)) {
$array_devuelve = array($contador => array($row[$contador]));
array_push($array_devuelve[$contador], $row[$contador]);
$contador++;
}
return $array_devuelve;
}
// Si no se pudo seleccionar la base de datos
else {
// Mostrar el mensaje de error
return "Error al seleccionar la base de datos";
}
}
// Si no se puede conectar al servidor de base de datos
else {
// Mostrar el mensaje de error
return "Error al conectar con el servidor de base de datos";
}
}
Y con éste código se muestran los datos:
$datos = MostrarRegistros("localhost", "root", "", "STUDIOCELIS", "CLIENTES", "NOMBRE,APELLIDO,TELEFONO");
while (list($id, $nombre, $apellido, $telefono) = each($datos)) {
echo "NOMBRE:".$nombre."<br>";
echo "APELLIDO:".$apellido."<br>";
echo "TELEFONO:".$telefono."<br>";
echo "---------------------------------------------<BR>";
}
Ésto devuelve simple y dolorosamente:
NOMBRE:Array
APELLIDO:
TELEFONO:
---------------------------------------------
La pregunta es obviamente: ¿qué tengo que modificar para que funcione? En otras palabras, sería reproducir lo que hace mysql_fetch_row (o mysql_fetch_array) pero a partir de los datos que devuelven esas funciones.
El próximo paso en la evolución de ésta función sería crear una clase. De ésta manera se crearía una nueva clase con una variable (para conectarse a la base de datos) y luego se apuntaría la variable a la función de mostrar el registro especificando los campos y la tabla. Y para retamar, se crearían funciones para modificar, borrar y agregar registros... que ya las tengo hecha.
Ej:
$cnx = new Conectar("localhost", "root", "");
$cnx->MostrarRegistros("STUDIOCELIS", "CLIENTES", "NOMBRE,APELLIDO,TELEFONO");
Y luego se mostrarían los registros con otra función o con el while.
¿Es difícil de implementar porque parece fácil o es fácil de implementar porque parece difícil?
Muchas gracias,
Leo.
P.D.: me niego rotundamente a robarle código a phpnuke... además no lo encuentro.
*/
Estoy creando una función para devolver registros. El problema es ... ¿cómo creo una función para devolver registros?.
Había pensado en devolverlos con un array de dos dimensiones. Por ejemplo, devolvería $array_devuelve[0] = "juan, pedro, omar, marcos" para el segundo campo.
Ésta es la función:
// Función para mostrar registros
function MostrarRegistros($servidor, $bd_usuario, $bd_contrasenia, $basededatos, $tabla, $campos) {
// Si se conecta al servidor de base de datos
if ($link = mysql_connect($servidor, $bd_usuario, $bd_contrasenia)) {
// Si se selecciona la base de datos
if ($sel_bd = mysql_select_db($basededatos, $link)) {
// Hace el query por todos los campos
$result = mysql_query("SELECT $campos FROM $tabla", $link);
$contador = 0;
// Por cada registro encontrado guardarlo en el array
while ($row = mysql_fetch_row($result)) {
$array_devuelve = array($contador => array($row[$contador]));
array_push($array_devuelve[$contador], $row[$contador]);
$contador++;
}
return $array_devuelve;
}
// Si no se pudo seleccionar la base de datos
else {
// Mostrar el mensaje de error
return "Error al seleccionar la base de datos";
}
}
// Si no se puede conectar al servidor de base de datos
else {
// Mostrar el mensaje de error
return "Error al conectar con el servidor de base de datos";
}
}
Y con éste código se muestran los datos:
$datos = MostrarRegistros("localhost", "root", "", "STUDIOCELIS", "CLIENTES", "NOMBRE,APELLIDO,TELEFONO");
while (list($id, $nombre, $apellido, $telefono) = each($datos)) {
echo "NOMBRE:".$nombre."<br>";
echo "APELLIDO:".$apellido."<br>";
echo "TELEFONO:".$telefono."<br>";
echo "---------------------------------------------<BR>";
}
Ésto devuelve simple y dolorosamente:
NOMBRE:Array
APELLIDO:
TELEFONO:
---------------------------------------------
La pregunta es obviamente: ¿qué tengo que modificar para que funcione? En otras palabras, sería reproducir lo que hace mysql_fetch_row (o mysql_fetch_array) pero a partir de los datos que devuelven esas funciones.
El próximo paso en la evolución de ésta función sería crear una clase. De ésta manera se crearía una nueva clase con una variable (para conectarse a la base de datos) y luego se apuntaría la variable a la función de mostrar el registro especificando los campos y la tabla. Y para retamar, se crearían funciones para modificar, borrar y agregar registros... que ya las tengo hecha.
Ej:
$cnx = new Conectar("localhost", "root", "");
$cnx->MostrarRegistros("STUDIOCELIS", "CLIENTES", "NOMBRE,APELLIDO,TELEFONO");
Y luego se mostrarían los registros con otra función o con el while.
¿Es difícil de implementar porque parece fácil o es fácil de implementar porque parece difícil?
Muchas gracias,
Leo.
P.D.: me niego rotundamente a robarle código a phpnuke... además no lo encuentro.
*/