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 :

Zend et base de donnée [ZF 1.10]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 80
    Par défaut Zend et base de donnée
    Bonjour,
    Je suis nouveau sur le forum et je viens tout juste de découvrir le framework Zendet aujourd'hui j'ai un problème, j'ai crée une table et j'arrive à insérer des données dedans mais pour modifier les données j'y arrive pas, si quelqu'un pourrait m'aider svp, je vous montre mon code est en "MVC" :

    Le controlleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    class IndexController extends Zend_Controller_Action
    {
     
        public function init()
        {
            /* Initialize action controller here */
        }
     
        public function indexAction()
        {
    		// Liste les albums et fetchAll lit toute les lignes de notre liste d'album
            $albums = new Application_Model_DbTable_Albums();
    		$this->view->albums = $albums->fetchAll();
        }
     
        public function ajouterAction()
        {
           $form = new Application_Form_Album();
    	   $form->envoyer->setLabel('Ajouter');
    	   $this->view->form = $form;
     
    	   if($this->getRequest()->isPost()){
    			$formData = $this->getRequest()->getPost();
    			if($form->isValid($formData)){
    				$artiste = $form->getValue('artiste');
    				$titre = $form->getValue('titre');
    				$albums = new Application_Model_DbTable_Albums();
    				$albums->ajouterAlbum($artiste, $titre);
     
    				$this->_helper->redirector('index');
    			}
    			else{
    				$form->populate($formData);
    			}
    		}
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
       public function modifierAction()
        {
           $form = new Application_Form_Album();
    	   $form->envoyer->setLabel('Sauvegarder');
    	   $this->view->form = $form;
     
    	   if($this->getRequest()->isPost()){
    			$formData = $this->getRequest()->getPost();
    			if($form->isValid($formData)){
    				$id = $form->getValue('id');
    				$artiste = $form->getValue('artiste');
    				$titre = $form->getValue('titre');
    				$albums = new Application_Model_DbTable_Albums();
    				$albums->modifierAlbum($id, $artiste, $titre);
     
    				$this->_helper->redirector('index');
    			}
    			else{
    				$id = $this->_getParam('id', 0);
    				if($id > 0){
    					$albums = new Application_Model_DbTable_Albums();
    				    $form->populate($albums->obtenirAlbum($id));
    				}
    			}
    		}
        }
     
        public function supprimerAction()
        {
           $form = new Application_Form_Album();
    	   $form->envoyer->setLabel('Supprimer');
    	   $this->view->form = $form;
     
    	   if($this->getRequest()->isPost()){
    			$supprimer = $this->getRequest()->getPost('supprimer');
    			if($supprimer == 'Oui'){
    				$id = $this->getRequest()->getPost('id');
    				$albums = new Application_Model_DbTable_Albums();
    				$albums->supprimerAlbum($id);
     
    				$this->_helper->redirector('index');
    			}
    			else{
    				$id = $this->_getParam('id', 0);
    				$albums = new Application_Model_DbTable_Albums();
    				$this->view->album = $albums->obtenirAlbum($id);
    			}
    		}
    	}
     
    }
    Le modele :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    [SIZE="2"]class Application_Model_DbTable_Albums extends Zend_Db_Table_Abstract
    {
     
        protected $_name = 'albums';
     
    	public function obtenirAlbum($id)
    	{
    		$id = (int)$id;
    		$row = $this->fetchrow('id = '.$id);
    		if(!$row){
    			throw new Exception("Impossible de trouver l'enregistrement $id");
    		}
    		return $row->toArray();
    	}
     
    	public function ajouterAlbum($artiste, $titre)
    	{
    		$data = array(
    			'artiste' => $artiste,
    			'titre' => $titre,
    			);
    			$this->insert($data);
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function modifierAlbum($id, $artiste, $titre)
    	{
    		$data = array(
    			'artiste' => $artiste,
    			'titre' => $titre,
    			);
    			$this->update($data, 'id='.(int)$id )
    	}

  2. #2
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    J imagine que ton modifierAlbum se trouve dans ton model, il te faut donc dans cette méthode récupérer le row correspondant à ron id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row = $this->fetchRow($id)
    Puis mettre a jour ce que tu veux par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $row->artiste = $artiste
    Et pour finir tu sauvegarde ton row
    Normalement le update aurait du marcher donc au lieu de dire ca ne marche pas donne nous les erreurs

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

Discussions similaires

  1. utiliser zend sans base de données
    Par Khleo dans le forum Autres composants
    Réponses: 6
    Dernier message: 31/10/2013, 15h02
  2. [ZF 1.11] Zend et base de données : mécanisme interne
    Par eaglesnipe dans le forum Zend Framework
    Réponses: 8
    Dernier message: 10/01/2012, 09h04
  3. Cache de base de données avec Zend
    Par CocoLeNain dans le forum Autres composants
    Réponses: 5
    Dernier message: 11/03/2010, 11h28
  4. Zend Session et base de données
    Par pada51 dans le forum Zend_Db
    Réponses: 2
    Dernier message: 29/02/2008, 02h09
  5. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 16h49

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