Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Método que devuelva resultado de consulta

Estas en el tema de Método que devuelva resultado de consulta en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola! Ando con un problema: Tengo un método en el que consulto por ciertos datos de una tabla. Lo que necesito es mostrar esos resultados ...
  #1 (permalink)  
Antiguo 12/05/2009, 13:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Método que devuelva resultado de consulta

Hola!

Ando con un problema:

Tengo un método en el que consulto por ciertos datos de una tabla. Lo que necesito es mostrar esos resultados en la página principal y no desde el mismo método en el cual consulto.
Código:
$rs=query("SELECT nombre FROM nombres");
while($datos= mysqli_fetch_array($rs)) echo $datos['nombre'];
Esto anda bien, consulto por el campo nombre de una tabla y luego los muestro.

Lo que yo necesito es mostrar los resultados en otro lugar, o sea que me devuelva TODOS los datos en un array u objeto y verlos en otro lado.

Algo así:
Código:
class Consultas {
function consultar {
	$rs=query("SELECT nombre FROM nombres");
	$datos= mysqli_fetch_array($rs);
	return $datos;
} 
}

$obj=new Consultas();
$resultado=$obj->consultar();

foreach ($resultado as $r) echo $r;

Esto me devuelve sólo el ultimo registro.

Anteriormente lo estaba usando con PDO, pero leí en un par de lugares que el MySqli rinde mejor,

entonces aprovecho que recién comienzo con este proyecto para migrar.
En PDO bastaba con retornar los datos con fetchAll() y eso lo leia con un foreach y andaba joya.

Creo que en MySqli no existe esa función o al menos no la he visto y estaría bueno que exista

una similar así no tengo que cambiar los métodos que ya programé para mostrar todo. Porque si

bien existe el fetch_object no me funciona de igual manera. Por ahora pasa zafar opté por

colocar un bucle en dicho método y mediante array_push voy agregando valores a un array auxiliar

para luego devolverlo.

Gracias!
  #2 (permalink)  
Antiguo 12/05/2009, 13:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Método que devuelva resultado de consulta

En tu funcion Consultar, haz un bucle while para descargar todos los resultados y regresas un array de resultados, por ejemplo:
Código php:
Ver original
  1. public function Consultar($query) {
  2.       $resultados = array();
  3.       while(/**stuf **/) {
  4.             $resultados[] = $dato;
  5.       }
  6.  
  7.       return $resultados.
  8. }

Saludos.
  #3 (permalink)  
Antiguo 12/05/2009, 14:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Método que devuelva resultado de consulta

Claro! es más o menos lo que hice yo con el push. Lo que necesitaba saber es si hay una forma más directa de pasar los datos, o sea, sin el bucle, Ya que luego cuando necesito los datos habría otro while y ya serían 2 bucles...

Yo hice esto:
Código:
$data=array();
while($datos=mysqli_fetch_array($rs)) array_push($data,$datos["nombre"]);
Gracias GatorV!
  #4 (permalink)  
Antiguo 12/05/2009, 14:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: Método que devuelva resultado de consulta

Lamentablemente no hay forma, otra opcion es que regresaras directamente el resultado y lo ciclaras con las funciones de mysqli, asi te evitas el doble bucle.

Saludos.
  #5 (permalink)  
Antiguo 12/05/2009, 21:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 24
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Método que devuelva resultado de consulta

Ok, gracias de todos modos. Lo voy a seguir usando así, pero no me quería quedar con la duda.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 26/05/2009, 14:06
 
Fecha de Ingreso: mayo-2009
Mensajes: 3
Antigüedad: 15 años, 7 meses
Puntos: 0
Busqueda Respuesta: Método que devuelva resultado de consulta

mmm has esto.
Código PHP:
Ver original
  1. <?
  2.  
  3. class Consultas {
  4.          var $resultado
  5.          function Consultas ($consulta){
  6.          $db = new mysqli(host,usuario,password,db);
  7.              $resultado=$db->query($consulta);
  8.          return $resultado;
  9.                      }
  10.          function array(){
  11.              $this->resultado;
  12.          }
  13. }
  14.  
  15. $query = "SELECT nombre FROM nombres"
  16. $obj = new Consultas($query);
  17. $resultado=$obj->array();
  18.  
  19. while ($resultado = $resultado->fetch_assoc() ){
  20.  
  21. $resultado['nombres'];
  22.  
  23. }
  24. ?>
no lo he probado por que ahorita ando deshubicado xD no tengo recursos me toco de memoria seria algo asi
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 02:55.