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

como puedo convertir un result en array o xml o json

Estas en el tema de como puedo convertir un result en array o xml o json en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos Como puedo hacer en una clase db un método que me retorne un result y este poder convertirlo a array o xml ...
  #1 (permalink)  
Antiguo 16/08/2009, 16:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Pregunta como puedo convertir un result en array o xml o json

Hola a todos

Como puedo hacer en una clase db un método que me retorne un result y este poder convertirlo a array o xml o json

por ejemplo algo asi.

$this->db->fetch()->toArray();
o
$this->db->fetch()->toXML();
o
$this->db->fetch()->toJSON();


Como tendria que ser el metodo fetch()
  #2 (permalink)  
Antiguo 17/08/2009, 09:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como puedo convertir un result en array o xml o json

Si quieres que fetch() tenga esos métodos, en ese caso fetch() te debe de regresar un objeto que internamente guarde los resultados en un array y luego implementas cada método para convertir el array en XML o JSON.

Saludos.
  #3 (permalink)  
Antiguo 17/08/2009, 13:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: como puedo convertir un result en array o xml o json

Esos metodos los quiero implementar en la clase que gestiona la base de datos, entonces segun lo que me dices deberia retornar un objeto de la clase BD, ahora bien este metodo tambien tiene que trabajar con alguna funcion para traer los datos de la BD, sea este mysql_fetch_array, mysql_fetch_row, mysql_fetch_object para que retorne un result y ese result poder convertirlo en array o xml o json.

Entonces mi pregunta es como puedo implementar ese metodo podrias orientarme.

Saludos,
  #4 (permalink)  
Antiguo 17/08/2009, 14:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como puedo convertir un result en array o xml o json

Es lo mismo, como te comenté, tu método fetch() debe de regresar un objeto nuevo, este debe de englobar el resultset en este caso el de mysql_query para que puedas implementar esos métodos de conversión.

Cuando llames el toArray() o toJSON() solo ciclas tu resultset y convierte el valor para obtener el resultado deseado.

Saludos.
  #5 (permalink)  
Antiguo 17/08/2009, 14:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: como puedo convertir un result en array o xml o json

Ahi justamente esta mi duda, no se como puede hacerse ya que en el return no puedo hacer esto return $this && resultset; de esa forma retorno la instancia y el resultset.

como podria hacerlo es posible si ademas me puedes explicar con algo de codigo por favor,

gracias
  #6 (permalink)  
Antiguo 17/08/2009, 14:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: como puedo convertir un result en array o xml o json

, no puedes regresar las dos cosas, necesitas regresar un objeto que englobe a tu resultado, por ejemplo:
Código PHP:
Ver original
  1. class A {
  2.        public function getB() {
  3.               return new B('blah');
  4.        }
  5. }
  6. class B {
  7.        private $_dato;
  8.  
  9.        public function __construct($dato) {
  10.                $this->_dato = $dato;
  11.        }
  12.  
  13.        public function getDato() {
  14.                return $this->_dato;
  15.        }
  16. }
  17.  
  18. $foo = new A();
  19. echo $foo->getB()->getDato();

Saludos.
  #7 (permalink)  
Antiguo 17/08/2009, 16:54
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 4 meses
Puntos: 845
Respuesta: como puedo convertir un result en array o xml o json

Código PHP:
<?php
class Row{
    
    public function 
toArray(){
        return 
get_object_vars($this);    
    }
    
      public function 
toJson(){
        return 
json_encode($this->toArray());    
    }

        
/**
         * @link http://josesalomon.com/?p=143
         **/
    
public function toXML(){
        return 
$this->arrayToXML($this->toArray())->saveXML();    
    }
}

$dbh  = new PDO($dsn$user$password);
$stmt $dbh->query('select * from user'PDO::FETCH_CLASS'Row');
print_r($stmt->fetch()->toArray());
print_r($stmt->fetch()->toJSON());
print_r($stmt->fetch()->toXML());
?>
PDO te deja declarar la clase del row y ahi podes implementar los metodos, es otra opción,
arriba de la toXML tenes un link a una funcion que te combierte un array en xml.
espero te sirva.
salu2.

Última edición por masterpuppet; 17/08/2009 a las 17:00
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 07:16.