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

mostrar resultado de un metodo

Estas en el tema de mostrar resultado de un metodo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Que tal!!!!!!!!!! Tengo un metodo de una clase que me retorna una cantidad determinada de registros, estos registros necesito mostrarlos uno a uno y al ...
  #1 (permalink)  
Antiguo 11/03/2009, 12:00
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
mostrar resultado de un metodo

Que tal!!!!!!!!!!

Tengo un metodo de una clase que me retorna una cantidad determinada de registros, estos registros necesito mostrarlos uno a uno y al frente de cada uno, una opcion "modificar" y otra opcion "eliminar", la cuestion es la siguiente: de que manera puedo mostrar los registros y sus respectivas opciones, pues funciona que el mismo metodo de mi clase no retorne valor alguno y por el contrario que muestre los datos y los enlaces, pero esto no desborda la logica de la poo al tener la presentacion de los datos y la logica de ellos en un mismo lugar ?


muchas gracias
  #2 (permalink)  
Antiguo 11/03/2009, 13:01
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: mostrar resultado de un metodo

- Asignás los datos que devuelve el método a una variable
- Pasás la variable de la capa de lógica a la de presentación
- En la capa de presentación preguntás si la variable no esta vacia, si no lo está mostrás los datos con las opciones modificar y eliminar.

Espero no haber entendido mal tu pregunta.
  #3 (permalink)  
Antiguo 11/03/2009, 13:54
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

Gracias por responder lisandro, el problema radica en que la consulta me retorna varios registros entonces necesito recorrer registro por registro y mostrar determinados campos de este, al frente de cada registro colocar las opciones que mencione. Como seria lo que ud me dice cuando el resultado tiene varios registros ?

muchas gracias
  #4 (permalink)  
Antiguo 11/03/2009, 14:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Pues es lo mismo si la consulta te regresa un juego de registros (array), solamente tienes que ciclarlo con un for/foreach/while.

Saludos
  #5 (permalink)  
Antiguo 11/03/2009, 15:40
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

gracias GatorV, pues lo he estado realizando de la siguiente manera:

public function cargar_solicitudes($query){
$db = new MySQL;
$consulta = $db->consulta($query);
if($db->num_rows($consulta)>0){
$resultados=$db->fetch_array($consulta);
}
return $resultados;
}

esta funcion regresa las solicitudes que cumplen con unas caracteristicas determinadas

luego llamo a este metodo de la siguiente manera:

$solicitud = new Solicitud();

$solicitudes=$solicitud->cargar_solicitudes("select * from Solicitud");

foreach($solicitudes as $dato){
echo $dato;
echo "<br>";

}

el problema es que me imprime dos veces cada registro. Esto lo he podido solucionar con la funcion array_unique, pero aun asi me queda la duda.

que puede ser ?

saludos.

Última edición por juamd; 11/03/2009 a las 15:44 Razón: incompleto
  #6 (permalink)  
Antiguo 11/03/2009, 15:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Cual es el código de $db->fetch_array?
  #7 (permalink)  
Antiguo 12/03/2009, 07:33
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

en la clase solicitud tengo el siguiente metodo:

public function cargar_solicitudes($query){
$db = new MySQL;
$consulta = $db->consulta($query);
if($db->num_rows($consulta)>0){
$resultados=$db->fetch_array($consulta);
}
return $resultados;
}

y en la clase mysql tengo el siguiente metodo:

public function fetch_array($consulta){
return mysql_fetch_array($consulta);
}

saludos.
  #8 (permalink)  
Antiguo 12/03/2009, 08:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Cambialo por mysql_fetch_row, o mysql_fetch_assoc, la cuestión es que por defecto mysql_fetch_array te regresa dos indices en tu array y por eso te falla.

Saludos
  #9 (permalink)  
Antiguo 12/03/2009, 09:09
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

he utilizado la funcion mysql_fetch_row, pero al asignarle el resultado a un array solo me toma un registro, que debo hacer ?

esto es lo que estoy haciendo:

public function cargar_solicitudes($query){
$db = new MySQL;
$consulta = $db->consulta($query);
if($db->num_rows($consulta)>0){
while($resultados=mysql_fetch_row($consulta)){
$row=$resultados;
}
}
}

saludos
  #10 (permalink)  
Antiguo 12/03/2009, 09:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Solamente tienes que cambiarlo dentro del método fetch_array, no es necesario que modifiques todo.
  #11 (permalink)  
Antiguo 12/03/2009, 09:48
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

Pero en este caso, donde el resultado de la consulta son varios registros y necesito mostrarlos todos, pero diferenciados, como puedo hacer para asignarlos correctamente y luego para mostrarlos ?

saludos
  #12 (permalink)  
Antiguo 12/03/2009, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Código php:
Ver original
  1. public function fetch_array($consulta){
  2.        return mysql_fetch_assoc($consulta);
  3. }

Solamente con ese cambio y el foreach que te habia indicado lo puedes hacer.

Saludos
  #13 (permalink)  
Antiguo 12/03/2009, 10:17
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

Que pena pero aun no entiendo lo que tengo que hacer.. este es el codigo que tengo.

public function cargar_solicitudes($query){
$db = new MySQL;
$consulta = $db->consulta($query);
if($db->num_rows($consulta)>0){
$resultados=$db->fetch_array($consulta);
}
return $resultados;
}


public function fetch_array($consulta){
return mysql_fetch_assoc($consulta);
}


y para recorrer la respuesta uso:

foreach($solicitudes as $solicitud){
echo "dato : ".$solicitud;
echo "<br>";
}

todo esto me muestra un solo registro y no veo que hacerle para mostrarlos todos

saludos
  #14 (permalink)  
Antiguo 12/03/2009, 10:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: mostrar resultado de un metodo

Asignalos en un arreglo:
Código php:
Ver original
  1. public function cargar_solicitudes($query){
  2.       $db = new MySQL;
  3.       $resultados = array();
  4.       $consulta = $db->consulta($query);
  5.       if($db->num_rows($consulta)>0) {
  6.            while( $resultado = $db->fetch_array($consulta) ) {
  7.                  $resultados[] = $resultado;
  8.            }
  9.       }
  10.  
  11.       return $resultados;
  12. }

Saludos.
  #15 (permalink)  
Antiguo 12/03/2009, 10:30
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: mostrar resultado de un metodo

Muchas gracias GatorV, era lo que necesita. Todo funciona bien.
  #16 (permalink)  
Antiguo 12/03/2009, 14:15
Avatar de pacmanaman  
Fecha de Ingreso: marzo-2009
Mensajes: 84
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: mostrar resultado de un metodo

Otra ...

Código PHP:
class Query
{
    private 
$dataTable;
    private 
$cantidadFilas;
    
    public function 
__construct($query,$conexion)
    { 
        
$this->dataTable mysql_query($query,$conexion);    
    }
        
    public function 
MostrarResultado($campo1 'user_login'$campo2 'user_email')
    {
        
$this->cantidadFilas mysql_num_rows($this->dataTable);
    
        for(
$i 0$i $this->cantidadFilas$i++)
        {
            
$registro mysql_fetch_array($this->dataTable);
            echo 
$registro[$campo1] .'<br>';
        }

    }
    public function 
getCantidadFilas(){ return $this->cantidadFilas;}
}

$miConexion = new Conexion("localhost","root","1","qa");

$miQuery = new Query("SELECT * FROM qausers",$miConexion->getLinkeo());

$miQuery->MostrarResultado('user_login','ID'); 
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:11.