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 :

Probleme avec l'instruction populate et la récuperation de l'enregistrement de la base données


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 34
    Par défaut Probleme avec l'instruction populate et la récuperation de l'enregistrement de la base données
    Bonjour , je suis en train de developper une application de gestion des stages en php5 et j'utilise le framework zend et je le connai pas bc voici le code de fonction modifier qui permet de modifier un encadreur dans le controlleur encadreur :
    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
    public function modifierAction()
        {
           $form = new Application_Form_ModifEncadreur();
    		$this->view->form = $form;
    		if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $id_encadreur = (int)$form->getValue('id_encadreur');
    			$nom_encadreur = $form->getValue('nom_encadreur');
    			$prenom_encadreur = $form->getValue('prenom_encadreur');
    			$mail_encadreur = $form->getValue('mail_encadreur');	
    			$tel_encadreur = $form->getValue('tel_encadreur');
    			$nom_etab = $form->getValue('nom_etabli');
    			$encadreur = new Application_Model_Encadreur();
    			$encadreur->modifierEncadreur($id_encadreur,$nom_encadreur,$nom_etab,$prenom_encadreur,$email_encadreur,$tel_encadreur);
    			$this->_redirect('/');
            } else {
                $form->populate($formData);
            }
        } else {
            $id_encadreur = $this->_getParam('id', 0);
    		echo $id_encadreur;
            if ($id_encadreur > 0) {
                $encadreur = new Application_Model_Encadreur();
                $form->populate($encadreur->obtenirEncadreur($id_encadreur));
            }
        }
        }
    et voila le model que j'utilise pour récuperer les enregistrement de BD et j'utilise deux fonction dans ce modele obtenirEncadreur() pour recuperer l'encadreur et modifierEncadreur() pour la mettre a jour :
    public function
    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
    modifierEncadreur($id_encadreur,$nom_encadreur,$nom_etab,$prenom_encadreur,$email_encadreur,$tel_encadreur)	
    	{
    		$data = array(
                       'nom_encadreur' => $nom_encad,
    				   'nom_etablissement' => $nom_etab,
                       'prenom_encadreur' => $prenom_encad,
    				   'email_encadreur' => $email_encad,
                       'tel_encadreur' => $tel_encad
    				   );	
    		$this->update($data, 'id = '. (int)$id_encadreur);		   
     
    	}
     
    	public function obtenirEncadreur($id_encadreur)
        {
     
            $id_encadreur = (int)$id_encadreur;
    		$db = new Zend_Db_Adapter_Pdo_Mysql(array('host' => 'localhost','username' => 'root','password' => '','dbname' => 'Stages'));
    		$sql="SELECT * from encadreur where id_encadreur ='$id_encadreur' ";
    		$db->setFetchMode(Zend_Db::FETCH_OBJ); 
            $enreg = $db->fetchRow($sql);
            if (!$row) {
                throw new Exception("Enregistrement non trouvé");
            }
            return $row->toArray();
        }
    et je pense que le probleme et dans la fonction obtenirEncadreur() car j'utilise zend_adapter et non pas zend_dbTable est ce que vous pouver m'aider svp ???

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Fait un print_r de la fonction "$encadreur->obtenirEncadreur($id_encadreur)" pour voir si le resultat retourner et une table key => valeur et que les key on le meme nom que les noms de tes input.

    sinon tu pourra utilisé la fonction fetchRow de Eend_DbTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function obtenirEncadreur($id_encadreur)
        {
     
            $id_encadreur = (int)$id_encadreur;
    	return $this->fetchRow($condition);
        }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 34
    Par défaut
    tout d'abord merci pour votre aide m4riachi mais j'ai pas bien compris ce que vous vouler dire exactement mon probleme exactement et que j'utilise zend adapter alors que la methode toArray() ne fonctionne pas que avec zend_DBTable et je cherche comment faire d'une autre maniére .

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 34
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    Fait un print_r de la fonction "$encadreur->obtenirEncadreur($id_encadreur)" pour voir si le resultat retourner et une table key => valeur et que les key on le meme nom que les noms de tes input.

    sinon tu pourra utilisé la fonction fetchRow de Eend_DbTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function obtenirEncadreur($id_encadreur)
        {
     
            $id_encadreur = (int)$id_encadreur;
    	return $this->fetchRow($condition);
        }
    tout d'abord merci pour votre aide m4riachi mais j'ai pas bien compris ce que vous vouler dire exactement mon probleme exactement et que j'utilise zend adapter alors que la methode toArray() ne fonctionne pas que avec zend_DBTable et je cherche comment faire d'une autre maniére .

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    A la place de l'adapter travail directement avec zend_DbTable avec sa methode fetchRow comme j'ai mentionné auparavant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function obtenirEncadreur($id_encadreur)
        {
     
            $id_encadreur = (int)$id_encadreur;
    	return $this->fetchRow(array ('id = ?' => $id_encadreur));
        }
    Sinon alors j'ai pas bien compris ton problème

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 34
    Par défaut
    Citation Envoyé par m4riachi Voir le message
    A la place de l'adapter travail directement avec zend_DbTable avec sa methode fetchRow comme j'ai mentionné auparavant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function obtenirEncadreur($id_encadreur)
        {
     
            $id_encadreur = (int)$id_encadreur;
    	return $this->fetchRow(array ('id = ?' => $id_encadreur));
        }
    Sinon alors j'ai pas bien compris ton problème
    mon probleme est que j'ai un formulaire pour modifier un encadreur et je veut lorsque je clique sur le lien modifier ce formulaire va etre rempli par les information de l'encadreur concérne et je sais pas utiliser zend_dbtable c pour sa je cherche une fonction ou une methode me permet de faire sa sans utiliser zend_dbtable

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 34
    Par défaut
    voila le message d'errur qui me sort peut etre sa vous aide
    Fatal error: Call to undefined method stdClass::toArray() in C:\wamp\www\stages\application\models\Encadreur.php on line 48

Discussions similaires

  1. Probleme avec l'instruction if - comparaison de 2 noms
    Par C.R.E.A.M dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/07/2007, 22h54
  2. Probleme avec l'instruction AS
    Par LP-mpascolo dans le forum Langage SQL
    Réponses: 14
    Dernier message: 16/04/2007, 15h39
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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