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

MkFramework Discussion :

Foreach sur tEleve


Sujet :

MkFramework

  1. #1
    Membre régulier
    Foreach sur tEleve
    Je ne sais pas faire un foreach sur un tableau.
    J'aimerai faire une boucle sur les élèves d'une classe mais je n'y parviens pas.

    dans mon model j'ai
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public function findAllElevesByClasseId($classe_id){
        	return $this->findMany('SELECT 
        		classesUsers.id, 
        		classesUsers.user_id, 
        		classesUsers.classe_id, 
        		users.nom, 
        		users.prenom
    			FROM classesUsers, users, classes 
    			WHERE classesUsers.user_id=users.id
    			AND classesUsers.classe_id=classes.id
    			AND users.statut_id=1 
    			AND classes.id=?
    			ORDER BY  classes.nom, users.nom ASC',$classe_id );
    	}

    dans mon module ma methode
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public function _machineEleves(){
    		$tEvaluations=model_evaluations::getInstance()->findAllByMachine(_root::getParam('machine_id'));
    		$oView=new _view('evaluationsByMachine::machineEleves');
     
    		$oView->tEvaluations=$tEvaluations;
    		$oView->oMachine=model_machines::getInstance()->findById(_root::getParam('machine_id'));
    		$oView->oClasse=model_classes::getInstance()->findById( _root::getParam('classe_id'));
    		$oView->tEleves=model_classesUsers::getInstance()->findAllElevesByClasseId(_root::getParam('classe_id'));
    		//print_r($tEleves);exit;
    		$oView->tJoinmodel_machines=model_machines::getInstance()->getSelect();
    		$oView->tJoinmodel_users=model_users::getInstance()->getSelect();
    		$this->oLayout->add('main',$oView);
    	}

    dans ma vue je cherche à faire une boucle sur les eleves en affichant leur nom et leur prenom.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    $oPluginHtml=new plugin_html; 
    ?>
    <div class="titre">
    	Classe: <?php echo $this->oClasse->session.'-'.$this->oClasse->nom ?><br>
    	Evaluation de : <?php print_r($this->oMachine->nom) ;?>
    </div>
    <?php //print_r($this->tEleves) ;exit;?>
    <?php foreach ($this->tEleves as $cle=>$prenom ): ?>
    	<?php echo $prenom ?>
    <?php endforeach ?>

    Dans ma vue un print_r($this->tEleves) donne
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Array ([0] => row_classesUsers Object ([sClassModel: protected] => model_classesUsers [_bChooseUpdate: abstract_row: private] => 1 [_tProperty: protected] => Array ([id] => 26 [user_id] => 5 [ classe_id] => 4 [nom] => ghjhj [prenom] => Alain) [_tPropertyToUpdate: protected] =>) [1] => row_classesUsers Object ([sClassModel: protected] => model_classesUsers [_bChooseUpdate: abstract_row: private] = > 1 [_tProperty: protected] => Array ([id] => 27 [user_id] => 4 [classe_id] => 4 [nom] => RTYURTY [prenom] => Rety) [_tPropertyToUpdate: protected] =>) [2] => row_classesUsers Object ([sClassModel: protected] => model_classesUsers [_bChooseUpdate: abstract_row: private] => 1 [_tProperty: protected] => Array ([id] => 4 [user_id] => 7 [classe_id] => 4 [nom] => TETER [prenom] => ErtertERT) [_tPropertyToUpdate: protected] =>) [3] => row_classesUsers Object ([sClassModel: protected] => model_classesUsers [_bChooseUpdate: abstract_row: private] => 1 [_tProperty: protected] => Array ([id] => 7 [user_id] => 2 [classe_id] => 4 [nom] => TOTO [prenom] => Oscar) [_tPropertyToUpdate: protected] =>))


    J'y arrive de mieux en mieux mais j'ai toujours autantde mal sur la manipulation des tableaux. Les 325 tutos que j'ai fait mon un peu aidémais pas assez encore

  2. #2
    Rédacteur

    La méthode findMany retourne un tableau d'objet

    Il faut faire
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($this->tEleves as $oEleve){
      echo $oEleve->nom.' '. $oEleve->prenom;
    }

    Plus d'infos sur la couche modèle ici:http://mkdevs.com/orm.html
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre régulier
    Super merci bien