Bonjour,

Je suis entrain de créer un blog.

Pour cela, j'ai ceci :

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;
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
 
class BlogController extends Zend_Controller_Action 
{
	//afficher tous les articles
	function blogAction(){
		$this->view->title = "blog";
		$art = new Article();
		$this->view->articles= $art->getArticlesAll();
	}
Et ensuite j'affiche dans une vue :

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; ?>
Sur chaque article, il y a un lien pour consulter les commentaires.

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 :

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);
Le problème s'est que je ne sais pas comment je peux connaitre l'idArticle.

J'espère avoir été clair.

Merci de votre aide