J'aimerai afficher un tableau d'utilisateurs, dans lequel je compte le nombre de concours et de réponses qu'ils ont proposé.
Voici la structure de ces 3 tables :
Code : Tout sélectionner
CREATE TABLE `users` (
`user_id` int(11) NOT NULL auto_increment,
`user_login` text character set latin1 collate latin1_general_cs NOT NULL,
`user_pass` text character set latin1 collate latin1_general_cs NOT NULL,
`user_mail` text NOT NULL,
`user_level` tinyint(4) NOT NULL,
`user_activated` tinyint(4) NOT NULL,
`user_activation_key` text character set latin1 collate latin1_general_cs NOT NULL,
`user_logged` tinyint(4) NOT NULL,
`user_last_session` datetime NOT NULL,
`user_points` int(11) NOT NULL,
`user_parrain_id` int(11) NOT NULL,
`user_concours_done` text NOT NULL,
`user_scoot_activated` tinyint(4) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;
CREATE TABLE `concours` (
`concours_id` int(11) NOT NULL auto_increment,
`concours_user_id` int(11) NOT NULL,
`concours_site_id` int(11) NOT NULL,
`concours_url` text NOT NULL,
`concours_start_date` datetime NOT NULL,
`concours_end_date` datetime NOT NULL,
`concours_type` tinyint(4) NOT NULL,
`concours_qs` enum('Oui','Non') NOT NULL,
`concours_nb_reponses` tinyint(4) NOT NULL,
`concours_reponses` text NOT NULL,
`concours_lots` text NOT NULL,
`concours_rating` tinyint(4) NOT NULL,
`concours_activated` tinyint(4) NOT NULL,
PRIMARY KEY (`concours_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
CREATE TABLE `reponses` (
`reponse_id` int(11) NOT NULL auto_increment,
`reponse_concours_id` int(11) NOT NULL,
`reponse_user_id` int(11) NOT NULL,
`reponse_text` text NOT NULL,
`reponse_valid` tinyint(4) NOT NULL,
PRIMARY KEY (`reponse_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;$sql = "SELECT user_id, user_login, user_level, user_mail, user_points, COUNT(concours_id) as concoursProposes, COUNT(reponse_id) as reponsesProposees
FROM ".$prefixe."users
LEFT JOIN ".$prefixe."concours, ".prefixe."reponses ON user_id = concours_user_id AND user_id = reponse_user_id
GROUP BY user_id";