Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-06-2009 11:49:57

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

fetchOne()

Bonjour,

J'aimerai récupérer le rôle de ma table utilisateur avec fetchOne(), mais ça ne passe pas. Voici mon code :

$sql = 'SELECT users_status FROM users WHERE users_login = mon_user';
    $result = $this->fetchOne($sql);

=>Fatal error: Call to undefined method Model_DbTable_Users::fetchOne()

Une idée ?


aka miboo

Hors ligne

 

#2 15-06-2009 13:33:58

apiel
Membre
Date d'inscription: 23-03-2009
Messages: 21

Re: fetchOne()

Je crois que le fetchOne n'est pas implemeté dans la classe db_table....

Hors ligne

 

#3 15-06-2009 16:18:08

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: fetchOne()

Hello,

Code:

$this->getAdapter()->fetchOne($sql);

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#4 15-06-2009 19:15:38

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: fetchOne()

Salut,

Reflexion peut-être bete mais pourquoi pas simplement un

Code:

$result = $this -> fetchRow($sql);

fetchRow a t'il un comportement différent de fetchOne ?

Cordialement,
Kaimite

Hors ligne

 

#5 16-06-2009 11:05:36

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: fetchOne()

Hello,

fetchRow renvoie un row (Zend_Db_Table_Row) dans Zend_Db_Table mais un array dans Zend_Db_Adaptateur_*. fetchOne renvoie une seule valeur (integer, string...)

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 16-06-2009 11:08:31

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: fetchOne()

mikaelkael a écrit:

Hello,

fetchRow renvoie un row (Zend_Db_Table_Row) dans Zend_Db_Table mais un array dans Zend_Db_Adaptateur_*. fetchOne renvoie une seule valeur (integer, string...)

A+

Exactement, et comme moi je souhaiterai récupérer uniquement une valeur, fetchOne apparait comme le choix le plus optimisé. Reste à savoir comment l'utiliser dans Zend_Db_Table (ou Zend_Db_Table_Abstract, j'ai encore un peu de mal à saisir les différences).

Je vais tester vos propositions et je vous tiens au courant. merci


aka miboo

Hors ligne

 

#7 16-06-2009 11:33:57

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: fetchOne()

Bonjour,

Merci pour l'info.

Je ne connaissait pas fetchOne.

Donc si je comprends bien fetchOne te renvoie directement la valeur de users_status.

Cordialement,
Kaimite

Hors ligne

 

#8 16-06-2009 11:34:35

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: fetchOne()

Kaimite a écrit:

Bonjour,

Merci pour l'info.

Je ne connaissait pas fetchOne.

Donc si je comprends bien fetchOne te renvoie directement la valeur de users_status.

Cordialement,
Kaimite

Si j'ai bien compris oui smile


aka miboo

Hors ligne

 

#9 16-06-2009 12:11:56

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

Re: fetchOne()

Alors espérons qu'on ai bien compris tous les deux big_smile

Hors ligne

 

#10 16-06-2009 12:32:10

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: fetchOne()

Hello,

Pour vous rassurer, vous avez bien compris big_smile

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#11 29-06-2009 14:52:51

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: fetchOne()

Avec :

public function getRoleByLogin($login)
    {
        $sql     = 'SELECT users_status FROM users where users_login = "'.$login.'"';
        $result = $this->getAdapter()->fetchOne($sql);
        if(!$result)
        {
            throw new Exception('Impossible de trouver le role avec le login $login');
        }
        return $result;
    }

J'obtiens:

Fatal error: Call to a member function getRoleByLogin() on a non-object in C:\wamp\www\ZFmvc\application\controllers\AuthController.php on line 102

une idée?


aka miboo

Hors ligne

 

#12 29-06-2009 14:55:09

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: fetchOne()

Salut,

L'erreur ne vient pas du code que tu montres smile

C'est avant ça, l'objet depuis lequel tu appelles la méthode en question.


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#13 29-06-2009 15:04:48

Vincent
Administrateur
Date d'inscription: 19-09-2008
Messages: 510

Re: fetchOne()

$users = new Model_DbTable_Users();
$users = $users->getUsersByLogin($username);
$role = $users->getRoleByLogin($username);

Aaaarf bien vu Benjamin, voilà ce qui arrive quand on fait des raccourcis qui servent à rien sad
Merci


aka miboo

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