Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 11h13   #1
Membre à l'essai
 
Étudiant
Inscription : avril 2007
Messages : 84
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 84
Points : 20
Points : 20
Envoyer un message via MSN à honey0 Envoyer un message via Yahoo à honey0
Par défaut Récupération des données d'une table

Bonjour
je viens de débuter sous Zend et j'essaie de récupérer et d'afficher les données d'une table de ma base.

Voilà le modèle dans lequel je récupère les données: Notification.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
class Business_Notification
{
    protected $conn_db;  
 
    public function  __construct()
    {
         $conn_db =  new Utils_DbExec_ZendDb();
    }
 
 
public function getNotifications()
    {
        $res = -1;
 
        //connexion à la BDD
        $conn_db =  new Utils_DbExec_ZendDb();
 
        $res = $conn_db->execReq('select * from notifications', 'select');
 
        return $res;
    }
}

Le contenu de mon contrôleur: NotificationControlleur.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
    class NotificationController extends Zend_Controller_Action
    {
        public function init()
        {
 
        }
 
        public function indexAction()
        {
            $this->view->title = "Accueil Notifications";
            $this->view->headTitle($this->view->title, 'PREPEND');
        }
 
        public function afficherAction()
        {
            $db = new Business_Notification();
 
            if ($this->getRequest()->isPost())
            {
	            $this->_helper->layout->setLayout('blanklayout');     
            }
 
            //récupération des données 
            $this->view->notif = $db->getNotifications();
        }
et ma vue dans laquelle je récupère les données sélectionnées et je les affiche: index.phtml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
       $notif = $this->notif;
 
       error_log($notif);
 
        foreach ($notif as $n)
        {
             echo $n['id'];
 
           //  error_log($n['titre']);
 
            /* echo '<table align="center">
                    <tr>
                        <td>'.$n["titre"].'</td>
                        <td>'.$n["npdID"].'</td>
                    </tr>
                  </table>';*/
        }
 
 ?>
J'ai l'erreur suivante: "Warning: Invalid argument supplied for foreach() in C:\dev\ApplicationNPD\application\views\scripts\notification\index.phtml on line 8 "

J'ai l'impression que $notif est vide. Pourtant, la connexion à la base marche très bien, car j'arrive à afficher les données sur une autre page. Je veux faire pareil sur la page notification, en adaptant juste le code à la page.
J'ai fait un qui me retourne 0.

J'espère que vous pourriez m'aider à voir clair.

Merci d'avance
honey0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 14h19   #2
Membre à l'essai
 
Étudiant
Inscription : avril 2007
Messages : 84
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 84
Points : 20
Points : 20
Envoyer un message via MSN à honey0 Envoyer un message via Yahoo à honey0
Par défaut résolu

Bonjour!!
j'ai trouvé mon erreur.

Je ne faisais rien dans IndexAction, donc la page index n'avait rien à afficher
il fallait faire dans le controller NotificationController:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 class NotificationController extends Zend_Controller_Action
    {
        public function init()
        {
 
        }
 
        public function indexAction()
        {
            $this->view->title = "Accueil Notifications";
            $this->view->headTitle($this->view->title, 'PREPEND');
          //  $this->_helper->layout->setLayout('layout_sans_menu');
 
            $db = new Business_Notification();
 
            if ($this->getRequest()->isPost())
            {
	            $this->_helper->layout->setLayout('blanklayout');
            }
 
            //récupération des données
            $this->view->notif = $db->getNotifications();
        }
 
        .........
}
J'espère que ça servira à certains débutants comme moi (j'ai encore un peu de mal avec le concept MVC), mais ça viendra!
honey0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h28.


 
 
 
 
Partenaires

Hébergement Web