Foros del Web » Programando para Internet » PHP »

Recuperar un while de una funcion

Estas en el tema de Recuperar un while de una funcion en el foro de PHP en Foros del Web. Hola amigos, Tengo una función en la cual hago una consulta: function buscando($user) //Busqueda de usuario { $db = conexion($dsninfo); $consulta = "select * from ...
  #1 (permalink)  
Antiguo 19/11/2003, 10:50
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 21 años, 10 meses
Puntos: 4
Recuperar un while de una funcion

Hola amigos,

Tengo una función en la cual hago una consulta:

function buscando($user) //Busqueda de usuario
{
$db = conexion($dsninfo);
$consulta = "select * from usuarios";
$res = $db->query($consulta);
$this->row = $res->fetchRow(DB_FETCHMODE_OBJECT);
}

Dentro de este tipo de busquedas simpre utilizo un while para recorrer todos los registros
while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
.........
}

Eso lo hago cuando no esta dentro de una funcion. La pregunta es: ¿Como hago un while dentro de una funcion y obtengo todos los registros de la busqueda?

Gracias por su ayuda
Salu2
Jorge.
  #2 (permalink)  
Antiguo 20/11/2003, 07:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Puedes usar tu bucle while donde quieras .. Eso sí ..ten presente el ambito de las variables para una función.

Si usas tu $rs (objeto) y otras variables que No son generadas en esa función debes de pasarselas como parámetro a la función o bien declararlas como globales en la función. Y si ese $rs por ejemplo ha de seguir usandose fuera de la función habrá que hacer un return o declararlo como global para que puedas usar esas variables fuera de tu función también.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/11/2003, 13:43
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 21 años, 10 meses
Puntos: 4
Gracias

Gracias cluster por tu respuesta,

Quisiera abusar de ti y pedite si me puedes dar un pequeño ejemplo para poder resolver este problema porque no he conseguido

La variable $user no la estoy utilizando pero se me olvido borrarla cuando puse el ejemplo
Gracias por tu ayuda.
Salu2
jars
  #4 (permalink)  
Antiguo 20/11/2003, 14:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Deberías poner el código completo que usas Sin función para ver como hacerlo bajo función y ver que variables necesitas tomar como globales y cuales pasar por parámetro ademas de ver que variables son las que necesitarias declarar como globales para que devuelvan su valor o bien enviarlas por "return" ..

En principio .. ese $db parece que es tu objeto instanciado de tu classe que usas para acceso a BD ..

function nose(){
global $db;
}

o bien:

funcion nose($db){

}

Eso sería pasar por "global" o por "parámetro" ese objeto a tu función .. Tendrás que añadir el resto de variables que uses ..

Revisa algún tutorial de PHP apartado "declaración de funciones" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 20/11/2003, 15:18
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 21 años, 10 meses
Puntos: 4
Gracias..gracias

Bueno aqui esta el codigo:


require_once("conexion.php");
global $dsninfo;
$db = conexion($dsninfo);

$sql ="Select * from tit_balance_2 where IDTit=2";
$resultado = $db->query($sql);
while($row = $resultado->fetchRow(DB_FETCHMODE_OBJECT))
{
...... aqui hago que se vean los datos que necesito, por ejemplo
echo $row->Nombre;
}

Lo que necesito hacer es pasar a una funcion solo el $sql el cual es diferente cada vez que hago una consulta y devolver los valores que encuentre. De esta forma tendría una función llamada consulta que estaría utilizando siempre que necesite hacer busqueda de varios registros.

Espero haberme explicado
Gracias por tu ayuda
Salu2
Jars
  #6 (permalink)  
Antiguo 20/11/2003, 16:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Pero quieres pasar una consult tipo $sql="cualquier SELECT ..."; y que el while() te haga un "echo" de esos campos (independiente de si en esa tabla/s implicadas en el FROM tabla(s) hay uno o vários?

Ese punto podrías hacerlo con mysql_fetch_fields() para obtener el nombre de los campos que se involucraron en la consulta.. pero ya veo que usas tu propia classe de abstracción de BD .. así que no sería muy buena idea implementar eso ahí.

Creo que lo que más te combiene es hacerte funciones con esos echo $row .. de los campos que requiersa y así poder usar esa función que muestre exactamente esos datos en los scripts que uses donde lo requieras ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 20/11/2003, 16:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Se me olvidó ... en $resultado tienes tu "record-set" .. justo para que le aplique tu while() (con el uso de los métodos que usas en ese objeto) ... así que podrías hacer ese while() fuera de la función (para representar los campos que intervengan en tu SQL a mano) .. Así tu función sólo tendría que hacer un return $resultado;

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:13.