Foros del Web » Programando para Internet » PHP »

Qué pasamos a otras funciones, el resultado de una consulta o el array ya construido?

Estas en el tema de Qué pasamos a otras funciones, el resultado de una consulta o el array ya construido? en el foro de PHP en Foros del Web. Me encuentro conque quiero pasar el resultado de una consulta, a otras partes del programa. Y no sé si utilizar el mysql_fetch_array, y pasar el ...
  #1 (permalink)  
Antiguo 29/12/2010, 20:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Qué pasamos a otras funciones, el resultado de una consulta o el array ya construido?

Me encuentro conque quiero pasar el resultado de una consulta, a otras partes del programa.

Y no sé si utilizar el mysql_fetch_array, y pasar el array, o pasar el resultado de la consulta y ya aplicaré en el destino el bucle:

while ($row=mysql_fetch_array...).

Pasar el resultado de la consulta, sin transformar en array, entiendo que es lo más cómodo y lo normal, pero claro, ya tenemos luego que jugar con volver a posicionarnos en el principio del registro si queremos seguir usándolo, si se va a usar varias veces tendremos que estar transformándolo en array siempre, etc. Me parece que pasar una matriz es más ligero.

Pero pasándolo si genero el array con mysql_fetch_array , luego no puedo recorrerlo (creo que está sólo el primer registro).

¿Alguien sabe el mejor modo, o el modo normal? Imagino que el modo normal será pasando el resultado de la consulta sin transformar en array, pero será interesante profundizar en este tema.
  #2 (permalink)  
Antiguo 29/12/2010, 21:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

a mi me gusta mas la idea de recorrer los resultados y agregarlos a un solo array, de esa forma podemos usar los mismos datos en diversas ocasiones, sin tener que ejecutar la consulta y recuperar los datos de nuevo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/12/2010, 09:11
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Cita:
Iniciado por pateketrueke Ver Mensaje
a mi me gusta mas la idea de recorrer los resultados y agregarlos a un solo array, de esa forma podemos usar los mismos datos en diversas ocasiones, sin tener que ejecutar la consulta y recuperar los datos de nuevo...
Claro, eso mismo digo.

Aunque del otro modo tampoco es que tuvieras que volver a ejecutar la consulta, ¿no? Sí recorrer el "recordset".

Un modo para crear el array, supongo que sería éste:


Código PHP:
$query=mysql_query("select Nombre, Cantidad from Tabla");
while (
$rs=mysql_fetch_array($query)){
$cantidad[]=$rs["Cantidad"];
$nombre[]=$rs["Nombre"];

  #4 (permalink)  
Antiguo 30/12/2010, 11:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

aunque resulta mejor así...
Código PHP:
$out = array();
while (
$out []= mysql_fetch_assoc($result));
print_r($out); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 04/01/2011, 14:59
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Cita:
Iniciado por pateketrueke Ver Mensaje
aunque resulta mejor así...
Código PHP:
$out = array();
while (
$out []= mysql_fetch_assoc($result));
print_r($out); 
¡Gracias! Lo probaré, tiene muy buena pinta.
  #6 (permalink)  
Antiguo 04/01/2011, 15:06
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Aún no lo he probado, pero buscando información sobre la función print_r, me parece que debería ponerse a "true" el parámetro return, además de asignárselo a una variable:

http://php.net/manual/es/function.print-r.php

No me queda claro que esa función tal y como está puesta arriba guarde los datos en un array, en lugar de sólo mostrarlos por pantalla.
  #7 (permalink)  
Antiguo 06/01/2011, 20:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

¡Ha funcionado muy bien!

El único pero, es que me mete una fila vacía o nula al final del array.
  #8 (permalink)  
Antiguo 06/01/2011, 21:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Cita:
Iniciado por un_tio Ver Mensaje
¡Ha funcionado muy bien!

El único pero, es que me mete una fila vacía o nula al final del array.
pues... depende mucho como tienes el código, quizá estas agregando algo de mas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 11/01/2011, 06:50
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Cita:
Iniciado por pateketrueke Ver Mensaje
pues... depende mucho como tienes el código, quizá estas agregando algo de mas...
¡Pues lo he puesto tal cual me lo has pasado! (De todos modos no es problema porque luego esa información la filtro).
  #10 (permalink)  
Antiguo 11/01/2011, 07:13
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Tal cual esta ahora siempre te va a agregar un elemento con valor false al final del array(cuando no hay mas filas mysql_fetch_assoc devuelve false), para hacerlo en una linea deberia ser algo asi:

Código PHP:
Ver original
  1. while(($arr[] = mysql_fetch_assoc($result)) || array_pop($arr));

esta en el manual

Saludos.
  #11 (permalink)  
Antiguo 12/01/2011, 08:20
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Respuesta: Qué pasamos a otras funciones, el resultado de una consulta o el array ya

Ok! Gracias.

Etiquetas: funciones, resultados
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 03:08.