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

Zend Framework - fetchRow

Estas en el tema de Zend Framework - fetchRow en el foro de Zend en Foros del Web. Holaaaaaaaaaaa Bueno, parece que ha casa pasito que doy con Zend Framework, me la pego... , pensé que me iva a costar menos... Ahora estoy ...
  #1 (permalink)  
Antiguo 21/05/2009, 12:56
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Zend Framework - fetchRow

Holaaaaaaaaaaa

Bueno, parece que ha casa pasito que doy con Zend Framework, me la pego... , pensé que me iva a costar menos...

Ahora estoy con la base de datos, llevo toda a la tarde averiguando el porqué de su funcionamiento pero ni idea.... así que ala, al foro!

Mi pregunta es: que #ññ#$ le pasa a la funcion fetchRow que siempre devuelve nulo!!

este es mi modelo
Código PHP:
class CitaTabla extends Zend_Db_Table_Abstract
    
{

        protected 
$_name 'citas';
        protected 
$_primary 'idCita';        

        public static function 
getCitas()
        {
            
$citaTabla = new CitaTabla();
            
$citas $citaTabla->fetchRow('SELECT cita FROM citas ORDER BY RAND() LIMIT 1');
            echo 
"Dentro de citas:"Zend_Debug::dump($citas)."fin";

            return 
$citas;
        }
    } 
- La query es correcta ya que si la hago directamente en el phpmyadmin, funciona
- La conexion con la base de datos tb es correcta porque si utilizo la funcion fecthAll, todo funciona correctamente..
- En principio las dos funciones son de Zend_Db_Table_Abstract, así que supongo que la manera de registrar la base de datos en el index.php es la misma para los dos casos, por lo que si funciona con fetchAll, no debería ser un problema para fetchRow
- fetchRow a diferencia de fetchAll, retorna un objeto, pero Zend_Debug::dump dice que es nulo, así que el problema no creo que sea la manera de tratar este objeto....

En fin... se me acaban las ideas........ help!!
  #2 (permalink)  
Antiguo 21/05/2009, 15: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: Zend Framework - fetchRow

Hola
Una de las maneras que puedes hacerlo es esta
Código php:
Ver original
  1. class CitaTabla extends Zend_Db_Table_Abstract
  2.     {
  3.  
  4.         protected $_name = 'citas';
  5.         protected $_primary = 'idCita';        
  6.  
  7.         public static function getCitas()
  8.         {
  9.               $db = Zend_Db_Table_Abstract::getDefaultAdapter();
  10.              $citas = $db->fetchRow('SELECT cita FROM citas ORDER BY RAND() LIMIT 1');
  11.             echo "Dentro de citas:". Zend_Debug::dump($citas)."fin";
  12.  
  13.             return $citas;
  14.         }
  15.     }
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 21/05/2009, 15:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Zend Framework - fetchRow

wow, cierto, ya funciona, gracias por la respuesta!!..

pero... cual es la diferencia entre tu código y el mio?!?, los dos objetos que llaman a fetchRow son el mismo (Zend_Db_Table_Abstract) no?, es por el getDefaultAdapter() ?
  #4 (permalink)  
Antiguo 21/05/2009, 19:20
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: Zend Framework - fetchRow

La diferencia es que fetchRow de Zend_Db_Table_Abstract solo funciona de dos formas, la primera es con un objeto del tipo Zend_Db_Table_Select, y la segunda es especificando un where como primer parámetro y un order para el segundo parámetro.

Saludos.
  #5 (permalink)  
Antiguo 22/05/2009, 05:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 69
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Zend Framework - fetchRow

mmmmmmmm, ok, leeré otra vez el manual a ver si ahora lo pillo mejor, gracias!
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 17:06.