Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-08-2008 02:00:58

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

[db] Problème avec la clause where et récupération de données.

Bonjour à tous,

Voici le model que je veux utiliser :

Code:

class bd0x_Language extends Zend_Db_Table
{
    protected $_schema = '0rigin_xtrem';
    protected $_name = '0x_language';
    protected $_primary  = 'language_id';

    public function getSelectByName($language_short_name)
    {
        $select = $this    ->select()
                        ->from(array('oxl' => '0x_language'),
                        array ('oxl_language_id' => 'language_id' , 'oxl_language_name' => 'language_name', 'oxl_language_short_name' => 'language_short_name'))
                        ->where('oxl.language_short_name = ?',$language_short_name);        
        return $this->fetchAll($select);
    }
    
}

et je l'appelle de cette façon depuis un plugin :

Code:

            $paramLanguageShortName = $this->getRequest()->getParam('language');
            $bdox_Language = new bd0x_Language();
            $dataLanguage = $bdox_Language->getSelectByName($paramLanguageShortName );

Si j'affiche le contenu de $paramLanguageShortName , j'ai bien => fr dans mon cas. Je le passe donc en paramètre de mon appel au model.
Mon problème c'est que si je fait un echo $select dans mon model, voici l'affichage de la requête :

Code:

SELECT `oxl`.`language_id` AS `oxl_language_id`, `oxl`.`language_name` AS `oxl_language_name`, `oxl`.`language_short_name` AS `oxl_language_short_name` FROM `0x_language` AS `oxl` WHERE (oxl.language_short_name = ?)

On voit que le point d'interrogation n'est pas remplacé par la valeur de $language_short_name et je n'arrive pas à savoir d'où cela vient.
Si j'appelle ma fonction en faisant $bdox_Language->getSelectByName('fr'); , tout marche parfaitement.

Avez vous un idée sur la raison du problème ?

Merci d'avance.

Dernière modification par slaughter (16-08-2008 17:57:45)

Hors ligne

 

#2 16-08-2008 12:03:56

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [db] Problème avec la clause where et récupération de données.

Moi je concatène dans les where() comme ceci :

Code:

->where('oxl.language_short_name = '.$language_short_name);

ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#3 16-08-2008 17:57:31

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [db] Problème avec la clause where et récupération de données.

Bon ba j'ai finalement réussi avec le ? en retapant la commande. J'avais dû faire une erreur de syntaxe.

J'ai maintenant une autre question. Je voudrais avoir la valeur du champ oxl_language_id directement dans mon controller mais lorsque je fais cette commande ...

Code:

echo $dataLanguage->oxl_language_id;

J'ai le message d'erreur suivant ...

Code:

Notice: Undefined property: Zend_Db_Table_Rowset::$oxl_language_id in .....

Je n'arrive pas à voir d'où cela vient.

Dernière modification par slaughter (16-08-2008 18:01:19)

Hors ligne

 

#4 18-08-2008 07:31:01

grandlap
Membre
Date d'inscription: 22-07-2008
Messages: 50

Re: [db] Problème avec la clause where et récupération de données.

salut,

tu cherchez ta propriété sur un Rowset, alors qu'elle est présente sur Row

Code:

echo $dataLanguage->current()->oxl_language_id;

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