Bonjour,
Je suis entrain de créer un blog.
Pour cela, j'ai ceci :
J'affiche sur une page l'ensemble des articles, dans mon controller 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
15
16
17
18
19
20
21 CREATE TABLE `articles` ( `id` INT NOT NULL AUTO_INCREMENT , `titre` VARCHAR( 255 ) NOT NULL , `date` VARCHAR( 255 ) NOT NULL , `description` VARCHAR( 255 ) NOT NULL , `contenu` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `commentaire` ( `id` INT NOT NULL AUTO_INCREMENT , `nom` VARCHAR( 255 ) NOT NULL , `email` VARCHAR( 255 ) NOT NULL , `contenu` VARCHAR( 255 ) NOT NULL , `idArticle` INT NOT NULL, PRIMARY KEY ( `id` ), KEY `com_art_fk_constraint` (`idArticle`), CONSTRAINT `com_art_fk_constraint` FOREIGN KEY (`idArticle`) REFERENCES `articles` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Et ensuite j'affiche dans une vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class BlogController extends Zend_Controller_Action { //afficher tous les articles function blogAction(){ $this->view->title = "blog"; $art = new Article(); $this->view->articles= $art->getArticlesAll(); }
Sur chaque article, il y a un lien pour consulter les commentaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php foreach($this->articles as $articles): echo '<h3 class="articleTitre">' . $articles->Titre .'</h3>'; echo '<p class="articleDate"> Le ' .$articles->Date .'</p>'; echo '<div class="articleContent">' .$articles->Contenu . '</div>'; echo '<p class="article"><a href="' . $this->url(array("controller"=>"blog","action"=>"voirarticle","idArticle"=>$articles->Id)) .'">afficher les commentaires<a/></p>'; endforeach; ?>
Je cherche à compter le nombre de commentaire pour chaque article, et l'afficher ainsi dans le lien. La requete que je devrais mettre dans mon action 'blogAction' sera celle ci :
Le problème s'est que je ne sais pas comment je peux connaitre l'idArticle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $com = new Commentaire(); $nbrComment = $com->select() ->from('commentaire',array('nbr' => 'COUNT(*)')) ->where('idArticle = ?', $idArticle);
J'espère avoir été clair.
Merci de votre aide
Partager