Foros del Web » Programando para Internet » PHP »

No muestra datos completos fetchRow()

Estas en el tema de No muestra datos completos fetchRow() en el foro de PHP en Foros del Web. Buen dia a todos, intento hacer un query de mi tabla 'album' utilizando fetchRow() ya que con fetchArray() dentro del foreach tendría que poner algo ...
  #1 (permalink)  
Antiguo 17/05/2014, 12:40
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 13 años
Puntos: 7
No muestra datos completos fetchRow()

Buen dia a todos, intento hacer un query de mi tabla 'album' utilizando fetchRow() ya que con fetchArray() dentro del foreach tendría que poner algo así: $d[nombre_del_primer_campo] y lo que quiero es hacerlo así: $d[0], que aria referencia a la primera columna.
Utilizo ZEND FRAMEWORK.

Modelo:
Código PHP:
          $select $this->select()       
       ->
from('album');   




        
$rows $this->fetchRow($select);

        
//devuelve todos los registros de la tabla
        
return $rows;
    } 

Vista:
Código PHP:

foreach ($this->datos as $d) :

echo 
$d[0];

endforeach; 
Esto solo me muestra la primera fila de mis registros de esa tabla.
Saludos!
  #2 (permalink)  
Antiguo 17/05/2014, 12:48
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: No muestra datos completos fetchRow()

sera porque dentro del foreach() pones $d[0] ? :)
__________________
Salu2!
  #3 (permalink)  
Antiguo 17/05/2014, 12:52
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 13 años
Puntos: 7
Respuesta: No muestra datos completos fetchRow()

Gracias por tu pronta respuesta, si le quito el '0' solo me muestra el 1mer registro con todas sus columnas y lo que quiero es que me muestre todos los registros de la primera columna.
  #4 (permalink)  
Antiguo 17/05/2014, 12:58
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: No muestra datos completos fetchRow()

ok. ahora si te entiendo... seguro existe un fetchAll() o parecido
__________________
Salu2!
  #5 (permalink)  
Antiguo 17/05/2014, 13:01
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 13 años
Puntos: 7
Respuesta: No muestra datos completos fetchRow()

Pero con el fetchAll() tengo que poner todo el nombre completo de la columna, en cambio solo quiero hacer referencia al no. de columna ej. 0,1,2,3,4....
  #6 (permalink)  
Antiguo 17/05/2014, 13:21
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: No muestra datos completos fetchRow()

Segun el manual de ZEND, debes cambiar el modo:

Código PHP:
Ver original
  1. $select->setFetchMode(Zend_Db::FETCH_NUM);
  2. $rows = $stmt->fetchAll();

Cita:
Changing the Fetch Mode

By default, the statement object returns rows of the result set as associative arrays, mapping column names to column values. You can specify a different format for the statement class to return rows, just as you can in the Adapter class. You can use the setFetchMode() method of the statement object to specify the fetch mode. Specify the fetch mode using Zend_Db class constants FETCH_ASSOC, FETCH_NUM, FETCH_BOTH, FETCH_COLUMN, and FETCH_OBJ. See this chapter for more information on these modes. Subsequent calls to the statement methods fetch() or fetchAll() use the fetch mode that you specify.

Example #7 Setting the fetch mode

$stmt = $db->query('SELECT * FROM bugs');

$stmt->setFetchMode(Zend_Db::FETCH_NUM);

$rows = $stmt->fetchAll();

echo $rows[0][0];
__________________
Salu2!
  #7 (permalink)  
Antiguo 19/05/2014, 10:48
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 13 años
Puntos: 7
Respuesta: No muestra datos completos fetchRow()

Gracias Italico, al final queda asi:

public function listar()
{


$db = Zend_Db_Table::getDefaultAdapter();
$db->setFetchMode(Zend_Db::FETCH_NUM);
$select = new Zend_Db_Select($db);


$select = $db->select()
->from('album', array('id', 'nombre'));

$rows = $db->fetchAll($select);

return $rows;
}
}

Etiquetas: muestra, registro, select, tabla
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 21:43.