Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-02-2009 19:04:52

eilijah
Membre
Date d'inscription: 17-02-2009
Messages: 20

fetchAll() et select()

Salut a tous,

Je suis débutant avec ce framework ( et pas ultra expérimenté en prog..) je vous demanderai donc d'être indulgent:)

J'ai suivis le tuto Quickstart (tres complet!) et je suis en train d'essayer de l'adapter pour faire un petit site d'édition pour mes cours.

J'ai 2 questions auxquelles je n'ai pas trouvé de réponse sur le net :

- Dans la classe Model_Guestbook  (application/model/GuestBook.php)
on trouve :

Code:

return $this->getTable()->fetchAll('1')->toArray();

je voudrais savoir a quoi correspond ce '1'.

- Ma deuxieme question est  toujours a propos de la meme classe, on a :

Code:

$table = $this->getTable();
        $select = $table->select()->where('id = ?', $id);

mais dans la doc pour un select on part toujours d'un objet DB et non table...
Je voudrais savoir si il est possible de faire un select() sur certaine colonne avec un objet table, dans la doc a partir d'un objet db on a:


Code:

$select = $db->select()->from('table','colonne')

comment faire en partant d'un objet table?

voila , en tous les cas même si je galère un peu de temps en temps, j'aime un peu plus chaque jour ce framework ! smile

Dernière modification par eilijah (19-02-2009 21:11:09)

Hors ligne

 

#2 19-02-2009 21:18:34

eilijah
Membre
Date d'inscription: 17-02-2009
Messages: 20

Re: fetchAll() et select()

J'avais pas regardé au bon endroit dans la doc hmm

Code:

$table = new Bugs();

$select = $table->select();
$select->from($table, array('bug_id', 'bug_description'))
       ->where('bug_status = ?', 'NEW');

$rows = $table->fetchAll($select);

Ma premiere question est toujours d'actualité ! smile

Hors ligne

 

#3 19-02-2009 21:53:25

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Re: fetchAll() et select()

L'élément '1' passé en paramètre représente l'attribut "$where" de la fonction fetchAll().

Code:

public function fetchAll($where = null, $order = null, $count = null, $offset = null)
    {
        if (!($where instanceof Zend_Db_Table_Select)) {
            $select = $this->select();

            if ($where !== null) {
                $this->_where($select, $where);
            }

            if ($order !== null) {
                $this->_order($select, $order);
            }

            if ($count !== null || $offset !== null) {
                $select->limit($count, $offset);
            }

        } else {
            $select = $where;
        }

        $rows = $this->_fetch($select);

        $data  = array(
            'table'    => $this,
            'data'     => $rows,
            'readOnly' => $select->isReadOnly(),
            'rowClass' => $this->_rowClass,
            'stored'   => true
        );

        @Zend_Loader::loadClass($this->_rowsetClass);
        return new $this->_rowsetClass($data);
    }

J'ai jeté un rapide coup d'oeil sur l'API de ZF et cet attribut doit être une clause where (c'est le cas ici) d'une requête sql ou une requête sql (objet Zend_Db_Table_Select).

Je peux me tromper mais à mon avis ZF génère une requête du style SELECT ... FROM ... WHERE 1;. Si c'est le cas, le '1' ne sert à rien. Tu as essayé de l'enlever?

Hors ligne

 

#4 19-02-2009 22:13:36

eilijah
Membre
Date d'inscription: 17-02-2009
Messages: 20

Re: fetchAll() et select()

Non je n'ai pas essayé pour la simple raison que je me suis empêtré dans une super méthode pour gérer tous les fetch possibles -.-.
Mais en effet selon ce que tu cites ça a l'air d'être le where et de ne servir donc à rien hmm

Enfin vu que c'est dans le tuto quickstart officiel ça parait bizarre qu'ils le mettent si ça sert à rien!
étrange donc hmm

Je testerai, merci de ta réponse Davjack!

Dernière modification par eilijah (19-02-2009 22:15:37)

Hors ligne

 

#5 20-02-2009 00:47:44

eilijah
Membre
Date d'inscription: 17-02-2009
Messages: 20

Re: fetchAll() et select()

Ca marche tres bien sans hmm je sais pas ce que ce 1 fait là

Hors ligne

 

#6 20-02-2009 11:24:07

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Re: fetchAll() et select()

Il est possible qu'à l'époque de la création du tuto, le paramètre $where était obligatoire. Dans ce cas, la solution du '1' permet de résoudre le problème.

Hors ligne

 

#7 20-02-2009 13:46:30

eilijah
Membre
Date d'inscription: 17-02-2009
Messages: 20

Re: fetchAll() et select()

en effet je n'avais pas pensé à ça smile

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