bonjour à tous
J'ai un petit souci lors de la conception de ma requête que j'utilise pour un site d'enchère au clic. Celle-ci me permet de récupéré la liste des articles, ainsi que le dernier enchérisseur. Dit comme sa, sa parait peut être simple mais ma requête Bug et me renvoi pas le dernier prix de l'article
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 | Articles(id) | Prix Afficher | Dernier prix enregistrés dans la table | |------------------|-------------------|--------------------------------------------| | 1 | 0.28 | 0.37 | | 3 | 0.04 | 0.37 | | 4 | 0.01 | 0.19 |
Ma Requête ressemble à ceci:
Comme vous pouvez le constater, il 1 Table qui contient les articles, 1 seconde qui contient toutes les enchères des articles en ligne et la dernière me permet de récupéré le pseudo du dernier enchérisseur. Le WHERE indique qu'il faut aller chercher les articles qui sont en ligne (date_debut supérieur au timetamps actuel) et les articles qui sont fraichement fini (date_fin + 15minute inférieur au timetamps actuel). (ndlr: Pour toutes autre question je me tiens à disposition)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT `A`.`id`, `A`.`titre`, `A`.`mini_img`, `A`.`prix_enchere`, `A`.`remporte_by`, `E`.`prix` , `U`.`pseudo` FROM `stooby_articles` `A` LEFT JOIN `stooby_article_enchere` `E` ON `E`.`id_article` = `A`.`id` LEFT JOIN `Stooby_user` `U` ON `U`.`id` = `E`.`id_pseudo` WHERE `A`.`date_debut` < CURRENT_TIMESTAMP() AND ADDDATE(`A`.`date_fin`, INTERVAL 15 MINUTE) > CURRENT_TIMESTAMP() GROUP BY `A`.`id`
Mes tables sont construite de la façon suivante:
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
27
28
29
30
31 -- -- Structure de la table `stooby_articles` -- CREATE TABLE IF NOT EXISTS `stooby_articles` ( `id` int(11) NOT NULL AUTO_INCREMENT, `titre` varchar(45) DEFAULT NULL, `date_debut` datetime DEFAULT NULL, `date_fin` datetime DEFAULT NULL, `description` text, `description_suite` text NOT NULL, `mini_img` varchar(200) NOT NULL, `prix_enchere` decimal(8,2) NOT NULL, `prix_reel` decimal(8,2) NOT NULL, PRIMARY KEY (`id`), KEY `date_fin` (`date_fin`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; -- -- Structure de la table `stooby_article_enchere` -- CREATE TABLE IF NOT EXISTS `stooby_article_enchere` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_article` int(11) NOT NULL, `id_pseudo` int(11) NOT NULL, `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `prix` decimal(8,2) NOT NULL, PRIMARY KEY (`id`), KEY `prix` (`prix`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=160 ;
Voilà donc si quelqu'un pouvait m'indiquer comment afficher correctement mes prix d'enchère, sa serai sympa. Pour le moment, les nouveau prix s'ajoute dans ma Base de donnée sans qu'il s'affiche et je suis un peu larguer
Merci d'avance à tous ceux qui pourront m'aider, je me tiend a disposition pour toute question!
Partager