Bonjour,
Un ami veut mettre en place un petit systême de candidature.
Les tables qu'il m'a fournies :
Pas de souci pour afficher les résultats des candidatures où l'on n'a déjà voté :
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 CREATE TABLE IF NOT EXISTS `candidatures` ( `id` int(11) NOT NULL AUTO_INCREMENT, `message` varchar(2000) NOT NULL, `email` varchar(60) NOT NULL, `ip` varchar(15) NOT NULL, `date` datetime NOT NULL, `login` varchar(50) NOT NULL, `traite` tinyint(1) NOT NULL DEFAULT '0', `resultat` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `candidatures_votes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `idmembre` int(6) NOT NULL, `id_candidature` int(5) NOT NULL, `vote` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
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
22
23
24
25
26 SELECT t.id, t.date, t.message, t.traite, t.resultat, t.login, p.idmembre, p.id_candidature, p.vote FROM candidatures AS t JOIN candidatures_votes AS p ON t.id = p.id_candidature WHERE t.date > DATE_ADD(NOW(), INTERVAL -2 DAY) AND t.traite = 0 AND p.idmembre = id_session GROUP BY t.id ORDER BY t.date ASC
Par contre pour afficher les candidatures ou l'on n'a pas encore voté j'ai essayé ça :
Mais évidemment ça ne fonctionne pas car il n'y a pas d'enfants dans la table candidatures_votes pour les candidatures où personne n'a encore voté et j'avoue que je tourne un peu en rond
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
22
23
24
25
26 SELECT t.id, t.date, t.message, t.traite, t.resultat, t.login, p.idmembre, p.id_candidature, p.vote FROM candidatures AS t JOIN candidatures_votes AS p ON t.id = p.id_candidature WHERE t.date > DATE_ADD(NOW(), INTERVAL -2 DAY) AND t.traite = 0 AND p.idmembre != id_session GROUP BY t.id ORDER BY t.date ASC
-> Est-il possible en une seule requête d'afficher les candidatures ou l'on n'a pas encore voté ?
-> N'aurait-il pas été préférable créer une 3ème table "votes" et modifier la table candidatures_votes pour en faire uniquement une table de jointure ?
Par avance merci.
Partager