Foros del Web » Programando para Internet » PHP »

Funciones MySQL

Estas en el tema de Funciones MySQL en el foro de PHP en Foros del Web. Tengo mis funciones que hacen la conexión y las consultas a la Base de Datos MySQL, tengo una función que hace la consulta a la ...
  #1 (permalink)  
Antiguo 17/06/2006, 10:29
 
Fecha de Ingreso: febrero-2005
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
Funciones MySQL

Tengo mis funciones que hacen la conexión y las consultas a la Base de Datos MySQL, tengo una función que hace la consulta a la BD, la cual se encarga de hacer la conexión también antes de consultar, mi problema es que cuando la consulta bota más de una fila como resultado, no puedo usar esta función, porque la variable que retorno no me permite recorrer los resultados obtenidos. Así que cada vez que quiero hace una consulta que me bota más de una fila tengo que llamar función por función (conexión, seleccionar db, hacer la consulta), y lo que yo quiero es simplemente usar la función "Select" que sí me funciona cuando la consulta tiene como resultado una fila solamente.

Esta es mi función
function Select($db,$query)
{
global $DBMSQL;
$conexion= conexion($DBMSQL->host,$DBMSQL->user,$DBMSQL->pass);
$conexionDB = conexionDB($db,$conexion);
$result = mysql_query($query) or die('Error haciendo el query');
$array= mysql_fetch_array ($result);
mysql_free_result($result);
mysql_close($conexion);
return $array;
}

Alguien tiene alguna idea? cómo puedo mejorar mis funciones para obtener lo que quiero? Gracias
  #2 (permalink)  
Antiguo 17/06/2006, 10:47
 
Fecha de Ingreso: septiembre-2005
Mensajes: 27
Antigüedad: 18 años, 6 meses
Puntos: 0
lo que yo estoy usando ahora, después de estudiarme el código de meneame.net
es la class ezsql, échale un ojo, te puede ser muy muy útil ya que simplifica muchísimo el manejo de bases de datos

http://www.jvmultimedia.com/portal/
y documentación con varios ejemplos:
http://justinvincent.com/docs/ezsql/ez_sql_help.htm

saludos
  #3 (permalink)  
Antiguo 17/06/2006, 10:55
Avatar de caneva  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla (España)
Mensajes: 81
Antigüedad: 17 años, 10 meses
Puntos: 1
luislarc una vez conseguido el $array con más de una fila ¿cómo intentas volcarlo?

Supongamos la tabla:
Campo1 | Campo2
X1---- -|-X3
X2---- -|-X4

Puedes hacer lo siguiente:

Código PHP:
$result mysql_query($query) or die ('Error haciendo el query');
$numero_filas_devueltas_porquery mysql_num_rows($result);

for (
$i=1$i <= $numero_filas_devueltas_porquery $i++)
{
    
$array mysql_fetch_array($result);
    echo 
$array['campo1']).'<->'.$array['campo2']'</ br>';

Este código devuelve lo siguiente:
X1<->X3
X2<->X4

El problema que tu función aun una vez modificada para adaptarse al ejemplo anterior solo devolvería una variable, por el return, y sería necesario que devolviera dos de las que yo te he especificado: $numero_filas_devueltas_porquery y $result. La cosa es que no se como hacer que una función devuelva más de una variable, si alguien nos echa un cable...
__________________
Cita:
"El camino empieza renunciando al control, y volviéndose flexibles."

Última edición por caneva; 17/06/2006 a las 11:13
  #4 (permalink)  
Antiguo 20/06/2006, 14:36
 
Fecha de Ingreso: febrero-2005
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
Lo que yo hago normalmente es esto:
$result = mysql_query($query);
$i=0;
while ($get = mysql_fetch_array($result))
{
$campo1[$i] = $get['campo1'];
$campo2[$i] = $get['campo2'];
$i++;
}

si observan mi función de consulta arriba la variable que retorno vendría a ser $get en esta porción de código, pero cuando la paso por el bucle, después de utilizar la función de arriba no me almacena los valores.

Además quisiera simplificar este método, porque si son muchos campos se me hace muy trabajoso ir almacenando por separado.. observen también que en $get['campo1'] tengo que colocar el nombre del campo, me gustaría que se asigne solo.

Si alguien tiene ya funciones de consultas y conexión a MySQL usando clases y que faciliten todo el trabajo que tengo que hacer le agradecería que me ayudara por favor.

Última edición por luislarc; 20/06/2006 a las 16:41
  #5 (permalink)  
Antiguo 20/06/2006, 16:42
 
Fecha de Ingreso: febrero-2005
Mensajes: 98
Antigüedad: 19 años, 2 meses
Puntos: 0
Alguna ayuda please??
  #6 (permalink)  
Antiguo 20/06/2006, 17:24
Avatar de deskman  
Fecha de Ingreso: noviembre-2005
Ubicación: Chorrillos Lima - Peru
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 1
Bueno Luis, porque no pruebas con la funcion mysql_result(), la forma de usarla es la siguiente:

$datoRecuperado = mysql_result ($idquery, $nroColumna, $numeroCampo);

Por ejemplo, si haces una consulta como esta (previa conexion y seleccion de base de datos):

$listaUsuarios = mysql_query("select idUsuario, nombreUsuario, passUsuario from usuarios");

y quieres recuperar el nombre del usuario que esta en la fila numero 2 harias lo siguiente:

$nombreUser = mysql_result($listaUsuarios, 2, 1);

Hay que tomar en cuenta que la primera fila es 0 y el primer campo tambien es 0. Saludos
__________________
"El conocimiento que no se comparte no es conocimiento"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:18.