Foros del Web » Programando para Internet » PHP » Zend »

Seleccionar solamente algunas columnas con Zend_Db_Table

Estas en el tema de Seleccionar solamente algunas columnas con Zend_Db_Table en el foro de Zend en Foros del Web. Hola que tal, estoy tratando de hacer una consulta a una tabla Model , no obstante solo quiero que el "Select" seleccione algunos de los ...
  #1 (permalink)  
Antiguo 13/05/2009, 17:04
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años, 7 meses
Puntos: 60
Seleccionar solamente algunas columnas con Zend_Db_Table

Hola que tal, estoy tratando de hacer una consulta a una tabla Model , no obstante solo quiero que el "Select" seleccione algunos de los campos y no todos, he tratado varios metodos sin embargo al hacer un dump del array que regresa el fetchAll, sigue trayendo todas las columnas. ¿Alguien sabe por que sucede esto?


Código PHP:
$aseguradoras = new Aseguradoras();
$aseguradoras->select()->from('Aseguradoras',array('id_aseguradora','aseguradora'));       
            
$registros $aseguradoras->fetchAll()->toArray();
            
Zend_Debug::dump($registros);

array(
2) {
  [
0] => array(4) {
    [
"id_aseguradora"] => string(1"1"
    
["aseguradora"] => string(7"Metlife"
    
["direccion"] => string(17"Direccion Metlife"
    
["logo"] => NULL
  
}
  [
1] => array(4) {
    [
"id_aseguradora"] => string(1"2"
    
["aseguradora"] => string(3"GNP"
    
["direccion"] => NULL
    
["logo"] => NULL
  
}

Yo NO deseo que consulte direccion y logo.

Gracias
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #2 (permalink)  
Antiguo 13/05/2009, 17:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Seleccionar solamente algunas columnas con Zend_Db_Table

Al usar fetchAll regresas todos los registros, tu tendrías que hacer algo así:
Código php:
Ver original
  1. $aseguradoras = new Aseguradoras();
  2. $select = $aseguradoras->select()->from('Aseguradoras',array('id_aseguradora','aseguradora'));
  3. $db = $aseguradoras->getAdapter();
  4. $registros = $db->fetchAll($select)->toArray();

Saludos.
  #3 (permalink)  
Antiguo 13/05/2009, 21:43
Avatar de mstekl  
Fecha de Ingreso: mayo-2009
Ubicación: Solymar, Uruguay
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Seleccionar solamente algunas columnas con Zend_Db_Table

Cita:
Iniciado por GatorV Ver Mensaje
Al usar fetchAll regresas todos los registros, tu tendrías que hacer algo así:
Código php:
Ver original
  1. $aseguradoras = new Aseguradoras();
  2. $select = $aseguradoras->select()->from('Aseguradoras',array('id_aseguradora','aseguradora'));
  3. $db = $aseguradoras->getAdapter();
  4. $registros = $db->fetchAll($select)->toArray();

Saludos.
Concuerdo con GatorV, aunque yo preferiria crear el select desde el adapter en lugar de crearlo con la clase de la tabla. Si no me equivoco el select que devuelve el $aseguradoras->select() es un objeto Zend_Db_Table_Select, el cual es una extension del Zend_Db_Select. La diferencia es que el Zend_Db_Table_Select aplica determinadas restricciones (que se pueden encontrar en la seccion zend.db.table.html#zend.db.table.fetch-all de la documentacion del ZF).
El codigo usando el select del adapter seria algo asi:
Código php:
Ver original
  1. $aseguradoras = new Aseguradoras();
  2. $db = $aseguradoras->getAdapter();
  3. $select = $db->select()->from('Aseguradoras',array('id_aseguradora','aseguradora'));
  4.  
  5. $registros = $db->fetchAll($select)->toArray();

Saludos,
mstekl
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 06:21.