IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Affichage du résultat d'une requête


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut Affichage du résultat d'une requête
    Bonjour,

    Je me retrouve confronté à un problème.

    Je souhaite afficher un select avec des valeurs venus d'une base de donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $brand = new Zend_Form_Element_Select('item_brand_fk');
            $brand->setLabel('Brand');
            foreach ($date_select as $truc) {
                    $brand->addMultiOption('$truc->brand_id', $truc->brand_name)->setValue($truc->brand_id);
            }
    Les valeurs de la table 'brand' sont passées dans les paramètres du formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            $db = new Model_DbTable_Brand();
            $result = $db->select('select * from brand');
            $form = new Form_Item($result);
            $form->submit->setLabel('Add');
            $this->view->form = $form;
    et rattrapper de la manière suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Form_Item extends Zend_Form {
     
        public function __construct($date_select) {
     
            parent::__construct($date_select);
    quand je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Zend_Debug::dump($date_select);
    dans la vue, j'ai :
    ....
    }
    ["primary"] => array(1) {
    [1] => string(8) "brand_id"
    }
    ["metadata"] => array(2) {
    ["brand_id"] => array(14) {
    ["SCHEMA_NAME"] => NULL
    ["TABLE_NAME"] => string(5) "brand"
    ["COLUMN_NAME"] => string(8) "brand_id"
    ["COLUMN_POSITION"] => int(1)
    ... etc ..
    donc les valeurs sont bien passées,

    parcontre j'ai aucun affichage. Enfin j'ai le formulaire et les diffrents élements mais le select est vide!

    En cherchant un peu je me suis rendu compte que la boucle n'ai même pas parcouru !!


    Note : c'est pas ma question principale mais je trouve intéréssant de comprendre pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fetchAssoc('select * from brand');
    ou bien
    me revoient
    all to undefined method Model_DbTable_Brand::fetchAssoc()
    Voilà merci de vos réponses

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach ($date_select as $truc) {
    $date_select n'est pas vide, et pour une étange raison le code ne rentre pas dans le boucle

    alors j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $table = new Model_DbTable_Brand();
            foreach ($table->fetchAll() as $truc) {
    donc une requête directement dans le formulaire.

    je ne sais pas si c'est "bien" d'un point du vue MCV, mais ça marche.

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Non ce n'est pas mvc du tout, si tu lis la doc, le $db->select, ne fait que de construire ta requête.
    Donc tu devrais avoir quelque chose comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            $db = new Model_DbTable_Brand();
            $select = $db->select('select * from brand');
            $smtp = $db->query($select);
            $result = $smtp->fetchAll();        
            $form = new Form_Item($result);
            $form->submit->setLabel('Add');
            $this->view->form = $form;

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Par défaut
    en effet il faut un fetchAll()...

    merci de ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage des résultats d'une requête dans listbox
    Par Deallyra dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/10/2007, 14h09
  2. Affichage du résultat d'une requête SQL
    Par kamikazbe dans le forum JDBC
    Réponses: 2
    Dernier message: 24/05/2007, 19h47
  3. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  4. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 18h49
  5. Affichage du résultat d'une requête paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 11/05/2006, 14h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo