Requête un peu compliquée
Posté : 12 févr. 2008, 16:41
Bonjour,
j'ai une table CONCOURS, une TABLES USERS, et une TABLE ASSOC, que voici :
La, j'aimerai qu'une requete sortent tous les concours qui ne sont ni faits, ni ignorés, donc qui n'ont pas encore de correspondance dans la table ASSOC.
j'en suis pour le moment à la, mais je bloque sur la fin de la requete :
j'ai une table CONCOURS, une TABLES USERS, et une TABLE ASSOC, que voici :
je souhaiterai afficher la liste des concours, pour un utilisateur donné (j'ai son $_SESSION['user_id']), qui n'ont pas de correspondance dans la table ASSOC. Cette table ASSOC sert à savoir si un utilisateur à fait/ignoré un concours. Lorsque l'utilisateur fait cette requete, cela ajoute une entrée dans la table, avec le concours_id, le user_id, et le statut ('done', 'ignored').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_reglement_url` text NOT NULL,
`concours_start_date` datetime NOT NULL,
`concours_end_date` datetime NOT NULL,
`concours_type` tinyint(4) NOT NULL,
`concours_participation` tinyint(11) NOT NULL,
`concours_qs` enum('Oui','Non') NOT NULL,
`concours_nb_reponses` tinyint(4) 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=4 ;
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_last_ip` text NOT NULL,
`user_points` int(11) NOT NULL,
`user_parrain_id` int(11) NOT NULL,
`user_scoot_activated` tinyint(4) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;
CREATE TABLE `assoc` (
`assoc_user_id` int(11) NOT NULL,
`assoc_concours_id` int(11) NOT NULL,
`assoc_statut` enum('','done','ignored') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
La, j'aimerai qu'une requete sortent tous les concours qui ne sont ni faits, ni ignorés, donc qui n'ont pas encore de correspondance dans la table ASSOC.
j'en suis pour le moment à la, mais je bloque sur la fin de la requete :
$sql = "SELECT concours_id, site_name, concours_end_date, concours_type_title, concours_rating
FROM ".$prefixe."concours, ".$prefixe."concours_type, ".$prefixe."sites, ".$prefixe."assoc
WHERE concours_type = concours_type_id
AND concours_site_id = site_id
AND concours_id = assoc_concours_id
AND concours_activated = 1
AND assoc_user_id = '".$_GET['user_id']."'";