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

Consulta Sencilla sobre Zend y Base de Datos

Estas en el tema de Consulta Sencilla sobre Zend y Base de Datos en el foro de Zend en Foros del Web. Hola, he logrado obtener resultados de la base de datos, con el siguiente codigo: Código: $albums = new Categorias(); $datos = $albums->fetchAll(); $rowCount = count($datos); ...
  #1 (permalink)  
Antiguo 07/08/2008, 08:34
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Exclamación Consulta Sencilla sobre Zend y Base de Datos

Hola, he logrado obtener resultados de la base de datos, con el siguiente codigo:

Código:
$albums = new Categorias();
$datos =  $albums->fetchAll();
$rowCount = count($datos);
	
//Cuento los resultados//
if ($rowCount > 0) {
    echo "found $rowCount rows";
} else {
    echo 'no rows matched the query';
}

$rowsetArray = $datos->toArray();

//Itero, he imprimo
$rowCount = 1;
foreach ($rowsetArray as $rowArray) {
    //echo "row #$rowCount:\n";
    foreach ($rowArray as $column => $value) {
       // echo "\t$column => $value\n";
      echo "\t $value\n";
    }
    ++$rowCount;
    echo "\n";
}
Ahora bien, lo que no me ha salido, es hacer que me devuelva los datos de una columna solo, es decir, el equivalente
a:

Código:
Selec Name from Categorias
Aguna idea??

Un abrazo
  #2 (permalink)  
Antiguo 07/08/2008, 09:40
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Prueba esto

Código PHP:
$albums = new Categorias();
$datos =  $albums->fetchAll()->toArray();

foreach(
$datos as $value){
    echo 
$value['Name'];

Con eso imprimes el valor de una columna
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 07/08/2008, 11:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Idolo!!!! agradesco tu ayuda!!, no lo podia resolver con nada.
Un abrazo
  #4 (permalink)  
Antiguo 07/08/2008, 11:37
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Pregunto, el codigo funciona bien, pero si quiero que la consulta sea
Código PHP:
Selec Name from Categorias where Parent 20 
Esto tendria que devolver algunos resultados.
como Se haria?
  #5 (permalink)  
Antiguo 07/08/2008, 11:57
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: Consulta Sencilla sobre Zend y Base de Datos

Código PHP:
$albums = new Categorias();
$select $albums->select();
$select->from($albums"Name")->where("Parent=?"20);
$datos =  $albums->fetchAll($select); 
Saludos.
  #6 (permalink)  
Antiguo 07/08/2008, 12:24
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Hola puse el siguiente codigo:
Código PHP:
$albums = new Categorias();
$select $albums->select();
$select->from($albums"Name")->where("Parent=?"1);
$datos =  $albums->fetchAll($select); 
Vale aclarar Existe en la base de datos, un/unos elemento que tiene Parent = 1
Y para recorrer utilizo.
Código PHP:

foreach($datos as $value){
    echo 
"a ver:".$value['Name'];

Pero me da el siguiente error:
Código PHP:
Cannot use object of type Zend_Db_Table_Row as array 
Alguna idea? Estoy perdidisimo ahora.
  #7 (permalink)  
Antiguo 07/08/2008, 12:50
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

1era Forma
Código PHP:
$datos =  $albums->fetchAll($select); 
La variable datos contiene un objeto
se recorre asi
Código PHP:
foreach($datos as $value){
    echo 
$value->Name;

2da Forma
Código PHP:
$datos =  $albums->fetchAll($select)->toArray(); 
La variable datos contiene un array
se recorre asi
Código PHP:
foreach($datos as $value){
    echo 
$value['Name'];

__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #8 (permalink)  
Antiguo 07/08/2008, 12:51
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: Consulta Sencilla sobre Zend y Base de Datos

Te falta el toArray de datos

Código PHP:
$datos =  $albums->fetchAll($select)->toArray(); 
Saludos.
  #9 (permalink)  
Antiguo 07/08/2008, 12:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Maestro!!!, ahora me funciona de maravillas. Un Abrazo.
  #10 (permalink)  
Antiguo 07/08/2008, 14:34
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Recien veo que Genetix también me respondió, parece que los dos respondieron simultaneamente, y solo vi el ultimo.

Gracias por responder, ahora tengo la siguiente duda,
Cual es las diferencias, de utilizar la informacion devuelta como objeto y devuelta con toArray?. Ventajas y Desventajas y algun ejemplo.

La verdad no me puedo dar cuenta. No logro entenderlo.


Desde ya, un abrazo.
  #11 (permalink)  
Antiguo 07/08/2008, 15:23
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: Consulta Sencilla sobre Zend y Base de Datos

Hola gabyrsh,

Al usarla como objeto puedes hacer cosas así:
Código PHP:
$albums = new Categorias();
$select $albums->select();
$select->from($albums"Name")->where("Parent=?"1);
$datos =  $albums->fetchAll($select); 

foreach(
$datos as $value){
    
$name $value->Name;
    if( 
$name == "algo" ) {
             
$value->Name "new_name";
             
$value->save();
    }

Como puedes ver puedes guardar tu objeto directo en la base de datos, al usarlo como arreglo, pierdes esa "funcionalidad" ya que solo trabajas sobre los datos.

Saludos.
  #12 (permalink)  
Antiguo 07/08/2008, 15:33
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

gracias por responder,
esta bien, y grabar los datos en forma de arreglo como seria?
(disculpame que te insista, es para poder ver la diferencia y terminar de entender)
  #13 (permalink)  
Antiguo 07/08/2008, 18:13
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: Consulta Sencilla sobre Zend y Base de Datos

No puedes guardar los datos en forma de arreglo, es de las limitantes que te comentaba.

Saludos.
  #14 (permalink)  
Antiguo 07/08/2008, 18:18
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Consulta Sencilla sobre Zend y Base de Datos

Cita:
y grabar los datos en forma de arreglo como seria?
si te refieres a poder hacer esto, si se puede
Código PHP:

$table 
= new Bugs();

$data = array(
    
'created_on'      => '2007-03-22',
    
'bug_description' => 'Something wrong',
    
'bug_status'      => 'NEW'
);

$table->insert($data); 
saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com

Última edición por Genetix; 07/08/2008 a las 18:28
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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 08:23.