Bonjour, je ne maîtrise pas bien la lecture d'une table il y a des choses que je ne sais pas
on va partir de cette table simple
pour le moment voici mon model de la table image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE `testzend`.`admin` ( `id_user` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nom` VARCHAR( 50 ) NOT NULL , `droit` TINYINT UNSIGNED NOT NULL , INDEX ( `nom` ) ) ENGINE = MYISAM ;
et voici mon controller
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class Application_Model_DbTable_Admin extends Zend_Db_Table_Abstract protected $_name = 'user'; }
et j'affiche avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function indexAction() { $user= new Application_Model_DbTable_Admin(); $this->view->user = $user->fetchAll(); }
jusqu'a la cela fonctionne, je vois mes nom des utilisateurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php foreach($this->user as $user):?> <?php echo $this->escape($user->nom); ?> <?php endforeach; ?>
dite mois si j'ai juste, donc d'après ce que j'ai compris en instanciant new Application ... j'ai son modèle donc la methode fetchAll peut chercher tous les noms des champs et cela donne accès à la base de donnée(mot de pass, login), je pense que c'est Zend_Db_Table_Abstract qui le permet de faire tous cela.
maintenant j'ai besoin d'une jointure entre 2 tables, il faut alors utiliser zend_db select(), il me fait que j'appelle 2 tables.
j'ai essayer de faire ceci mais cela ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ou je dois utiliser select()? dans le modèle user ? dans le controller IndexController ?
je vais appelle cette requête à son controller
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Application_Model_DbTable_Admin extends Zend_Db_Table_Absctract { protected $_name = 'user'; public function getAll() { $sql = $db->select("SELECT * FROM Admin);//pour simplifier c'est une requête pour une seul table, mais lorque ce test sera fini, je ferais une jointure entre 2 tables } }
ici j'ai une erreur Fatal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public function indexAction() { $user= new Application_Model_DbTable_Admin(); $user->getAll(); //envoie moi à travers le mondèle Admin la requête select() }
merci d'avances pour la réponses![]()
Partager