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 06/12/2011, 08h19   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Réunion

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

Informations forums :
Inscription : décembre 2011
Messages : 35
Points : 12
Points : 12
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 :
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 :
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 :
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 :
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 )
	}
brice97431 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 23h43   #2
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 680
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 680
Points : 1 044
Points : 1 044
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 :
$row = $this->fetchRow($id)
Puis mettre a jour ce que tu veux par exemple
Code :
$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
5h4rk 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 15h43.


 
 
 
 
Partenaires

Hébergement Web