Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-09-2012 08:35:34

roswellenshort
Membre
Date d'inscription: 06-09-2012
Messages: 12

Zend Select Max - encore-

Bonjour,

Depuis un moment je coince sur une requête Max dans une classe.

Je m'explique : j'ai une table en mysql content comme clé un id de format entier, non incrémenté (dans le but de garder un contrôle dessus). J'ai créé une classe relative à cette table. Le but est qu'il y ait des méthodes pour en manipuler les données. Et je coince sur la recherche de l'ID Max :
Voici le code de la classe

Code:

class Tavurnav extends Zend_Db_Table_Abstract
{
        //protected $config= new Zend_Config_Ini('config.ini','dev');
        protected $_name= 'Avurnav';    
        protected $_primary = 'numerotation_avurnav';
        //protected $db = Zend_Db::factory($config->database);
        
        
        protected function datefrenus ($datefr) {
            if (!$datefr) return "";
            list($jour, $mois, $annee) = split("/", $datefr);
            $dateus = trim($annee)."/".trim($mois)."/".trim($jour);
            return $dateus;
            
            }
        
        
        public function findByDate($date_emission) //controles à venir
        {
        if (!isset($date_emission)) {
            die ("Il faut renseigner une date émission");
            }
            else {
            $select = $this->select()
                        ->from ($this)
                        -> where ('date_emission =  ?', $date_emission);
             $toto = $this->fetchAll ($select);    
             foreach ($toto as $avirad) {
                echo "voici les messages demandés : " .$avirad->message ."<br> ".
                "Référence : ". $avirad-> reference;    
            }             
                 }
        }
            
        //fonction d'insertion sans controle pour le moment
        public function inserer ($data) {
            
            try{
            $this->insert($data);
            return true;                
            }
            catch (Zend_Db_Exception $e) {
                return false;
}

                    
    } 

    // retourne le dernier numero avurnav 
    public function dernierNumero () {
        
        
        $select = $this->select()
                ->from ($this, 'MAX(numerotation_avurnav)');
        echo "requete : ".$select .'<br>';
        $max= $this->fetchOne ($select);
                return $max;    

            }

Lorsque je fais appel à la méthode dernierNumero(), je n'ai aucun retour. Le code s'arrête, sans retour d'erreur.

Code:

$table = new Tavurnav();
$last = $table->dernierNumero();
echo $last;

Je suppose qu'il y a une erreur, sinon cela marcherait. Merci de votre aide

Cordialement

Hors ligne

 

#2 17-09-2012 11:14:10

amiss
Membre
Lieu: Cesson-Sévigné
Date d'inscription: 08-05-2011
Messages: 115

Re: Zend Select Max - encore-

bonjour,
essaies d'utiliser Zend_Db_Expr pour contraindre select de Zend_Db de considerer MAX(numerotation_avurnav) comme une expression et non comme une colonne.

Code:

[lang=php]
    public function dernierNumero () {
        
        
        $select = $this->select()
                ->from ($this, new Zend_Db_Expr("max(numerotation_avurnav) ")   );
        echo "requete : ".$select .'<br>';
        $max= $this->fetchOne ($select);
                return $max;    

            }

Dernière modification par amiss (17-09-2012 11:14:38)

Hors ligne

 

#3 17-09-2012 13:47:06

roswellenshort
Membre
Date d'inscription: 06-09-2012
Messages: 12

Re: Zend Select Max - encore-

En fait, j'ai modifié comme suit :

Code:

// retourne le dernier numero avurnav 
    public function dernierNumero () {
        $select = $this->_db->select();
            $select->from ("Avurnav", 'MAX(numerotation_avurnav)');
        echo $select ;
        $max = $this->_db->fetchOne ($select);    
                return $max;
            }

et j'ai à priori bien mon ID Max

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages