Foros del Web » Programando para Internet » PHP »

Función: ¿Cómo devolver un result correctamente?

Estas en el tema de Función: ¿Cómo devolver un result correctamente? en el foro de PHP en Foros del Web. Hola a todos: Lo que pregunto es cómo hacer lo siguiente (esto no funciona, parece que entra en un bucle infinito): Código PHP: while( $fila  ...
  #1 (permalink)  
Antiguo 20/01/2006, 13:35
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Función: ¿Cómo devolver un result correctamente?

Hola a todos:

Lo que pregunto es cómo hacer lo siguiente (esto no funciona, parece que entra en un bucle infinito):

Código PHP:
while($fila mysql_fetch_assoc(getResult())) {
  echo 
$fila['campo'];
}

function 
getResult() {
  
//la conexión ya viene ok
  
return mysql_query("select * from tal_tabla");

¿Hay alguna forma de hacer que esto funcione?
__________________
Sergio
  #2 (permalink)  
Antiguo 20/01/2006, 13:43
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Hola Hereje!

Se esta haciendo la consulta millones de veces , solamente debes de ejecutarla una vez en tu caso, sería de esta manera:

Código PHP:
$result getResult();
while(
$fila mysql_fetch_assoc($result)) {
  echo 
$fila['campo'];
}

function 
getResult() {
  
//la conexión ya viene ok
  
return mysql_query("select * from tal_tabla");

Un saludo!
  #3 (permalink)  
Antiguo 20/01/2006, 14:01
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Si hago eso, para limpiar el result ya lo tengo que hacer desde el lado de la "vista" digamos, y lo queria evitar:

Código imposible
Código PHP:
$result getResult();
while(
$fila mysql_fetch_assoc($result)) {
  echo 
$fila['campo'];
}
mysql_free_result($result); //esto!

function getResult() {
  
//la conexión ya viene ok
  
return mysql_query("select * from tal_tabla");

Una solución que encontré para lograr cierta independencia de la bd que utilizo:
Código PHP:
$datos getDatos();
foreach(
$datos as $fila) {
  echo 
$fila['campo'];
}
//no hace falta limpiar $datos ya que es un array y no un result.

function getDatos() {
  
$datos = array();
  
$result mysql_query("select * from tal_tabla");
  while(
$fila mysql_fetch_assoc($result)) {
    
$datos[] = $fila;
  }
  
mysql_free_result($result);
  return 
$datos;

Peeeero estoy recorriendo dos veces los datos!! Uno para cargar la matriz y otra para mostrar los datos. ¿Hay alguna forma de hacer esto mejor?

Ta luego y gracias por contestar!
__________________
Sergio
  #4 (permalink)  
Antiguo 21/01/2006, 06:16
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Información podrías usar una función print

Cita:
...para lograr cierta independencia...
Código PHP:
printDatos();


function 
printDatos()
{
//aquí consultas, recorres y mientras recorres,
//imprimes al vuelo

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 16:54.