Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Array con PDO y Value Object

Estas en el tema de Array con PDO y Value Object en el foro de PHP en Foros del Web. Hola mi código antiguo lo estoy pasando a PDO y me encontré con esta parte: Código PHP: function  listar (){         $query  =  "SELECT cod, nom, tipo FROM sc_stud         $BD = new ConexionDB();      // Conexcion BD ...
  #1 (permalink)  
Antiguo 15/12/2015, 09:27
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Array con PDO y Value Object

Hola mi código antiguo lo estoy pasando a PDO y me encontré con esta parte:
Código PHP:
function listar(){
       
$query "SELECT cod, nom, tipo FROM sc_stud 
       $BD = new ConexionDB();      // Conexcion BD

       $recordSet = Execute($query);   //  Ejecuta Query

//------ Desde aquí la duda

       $studs = array();   // 

       while($fila=$recordSet->FetchRow()) {
          $datos[] = new VisorVO($fila['cod'], $fila['nom']);
       }

       return $datos;
    } 
En el código, ejecuto la consulta, declaro un array y luego en una clase VisorVO (para visualizar los campos) inserto línea por línea.

Ahora quiero usar PHP/MVC con PDO,
Me sugirieron que usara fetchAll(); pero como asigno el resultado de la consulta con PDO?
O en todo caso como puedo trabajar mi MVC con PDO?
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 15/12/2015, 10:33
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Array con PDO y Value Object

Lo que buscas hacer esta en el ejemplo 4: http://php.net/manual/es/pdostatement.fetchall.php
Por otro lado MVC es totalmente independiente de PDO así que no debes de tener ningún problema para usarlo
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 15/12/2015, 13:04
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Array con PDO y Value Object

Cita:
Iniciado por hhs Ver Mensaje
Lo que buscas hacer esta en el ejemplo 4: http://php.net/manual/es/pdostatement.fetchall.php
Por otro lado MVC es totalmente independiente de PDO así que no debes de tener ningún problema para usarlo
Gracias por responder.
Entiendo que el fetchAll() me genera un array.
Yo uso smarty para visualizar la información. Por eso el resultado de la consulta la asigno a través de un array a un objeto PruebaVO.
Código PHP:
<td>{$lista[i]->codVO}</td>            
<
td>{$lista[i]->nomVO}</td
Cómo asigno el array a mi objeto PruebaVO? O alguna sugerencia al respecto.
__________________
Todos somos iguales. NO! a la violencia de género.
  #4 (permalink)  
Antiguo 15/12/2015, 14:13
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Array con PDO y Value Object

Código PHP:
Ver original
  1. class fruit {
  2.     public $name;
  3.     public $colour;
  4. }
  5.  
  6. $gsent = $gbd->prepare("SELECT name, colour FROM fruit");
  7. $gsent->execute();
  8.  
  9. $resultado = $gsent->fetchAll(PDO::FETCH_CLASS, "fruit");
  10. var_dump($resultado);
Tu clase debe de tener variables publicas y lo que te va a regresar fetchAll en el ejemplo es un arreglo de objetos "fruit". Para tu caso seria un arreglo de objetos VisorVO

PDO::FETCH_CLASS: Devuelve instancias de la clase especificada, haciendo corresponder las columnas de cada fila con las propiedades con nombre de la clase.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 15/12/2015, 14:23
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Array con PDO y Value Object

Cita:
Iniciado por hhs Ver Mensaje
Código PHP:
Ver original
  1. class fruit {
  2.     public $name;
  3.     public $colour;
  4. }
  5.  
  6. $gsent = $gbd->prepare("SELECT name, colour FROM fruit");
  7. $gsent->execute();
  8.  
  9. $resultado = $gsent->fetchAll(PDO::FETCH_CLASS, "fruit");
  10. var_dump($resultado);
Tu clase debe de tener variables publicas y lo que te va a regresar fetchAll en el ejemplo es un arreglo de objetos "fruit". Para tu caso seria un arreglo de objetos VisorVO

PDO::FETCH_CLASS: Devuelve instancias de la clase especificada, haciendo corresponder las columnas de cada fila con las propiedades con nombre de la clase.
ok, y cómo hago para obtener un registro cualquiera de ese arreglo? Es decir buscar una fila que tenga el índice X del arreglo?
__________________
Todos somos iguales. NO! a la violencia de género.
  #6 (permalink)  
Antiguo 15/12/2015, 15:30
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Array con PDO y Value Object

Dado que es un arreglo lo puedes recorrer mediante un foreach
Código PHP:
Ver original
  1. foreach($fruits as $fruit) {
  2.     $fruit->name;
  3.     $fruit->colour;
  4. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 15/12/2015, 16:45
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Array con PDO y Value Object

Cita:
Iniciado por hhs Ver Mensaje
Dado que es un arreglo lo puedes recorrer mediante un foreach
Código PHP:
Ver original
  1. foreach($fruits as $fruit) {
  2.     $fruit->name;
  3.     $fruit->colour;
  4. }
Si pero si no lo quiero recorrer, sino buscar un solo elemento?
__________________
Todos somos iguales. NO! a la violencia de género.
  #8 (permalink)  
Antiguo 16/12/2015, 08:18
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Array con PDO y Value Object

Yo no tengo idea de lo que estas haciendo, así que solo te proporcione una opción, de tal forma que tienes que pensar como lo vas a aplicar de acuerdo a tus necesidades o no usarla y probar otra cosa.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: object, pdo, select
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 04:20.