使用SPIP,我正在尝试一个系统,它将每天随机选择一篇文章。我需要保存今天的文章,主要有两个原因:
确保每个人都有同一篇文章
避免同一件物品在另一天第二次被挑选
为了能够存储选定的项,我创建了一个通用表:
CREATE TABLE IF NOT EXISTS `spip_random` (
`id_random` bigint(21) NOT NULL AUTO_INCREMENT,
`object` varchar(25) NOT NULL,
`id_object` bigint(21) NOT NULL DEFAULT '0',
`type` text NOT NULL,
`date_picked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id_random`),
KEY `object` (`object`,`id_object`),
KEY `id_random` (`id_random`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
这里有一堆可以存储的行:
(1, 'article', 54, 'article_of_the_day', '2014-11-29 00:03:54')
(2, 'article', 198, 'article_of_the_day', '2014-11-30 09:32:03')
(3, 'article', 113, 'article_of_the_day', '2014-12-01 14:11:04')
(4, 'article', 3, 'article_of_the_day', '2014-12-02 11:52:28')
选择当天文章的脚本运行良好。
现在,当我试图在SPIP循环中检索这篇文章时,我面临一个问题。我想用这种循环:
<BOUCLE_day(ARTICLES spip_random) {par date_picked} {inverse} {0,1}>
#ID_ARTICLE
</BOUCLE_day>
如SPIP文档中所述(EN/FR),连接应该在
spip_articles
和spip_random
之间完成,因为我有这两个字段:object
id_object
但什么也不退还。
如果我尝试这个简单的循环,它会显示右边的
#ID_OBJECT
:<BOUCLE_day(spip_random) {par date_picked} {inverse} {0,1}>
#ID_OBJECT
</BOUCLE_day>
我无法加入我的自定义表(
spip_random
)和ARTICLES
(spip_articles
)。我遗漏了什么吗? 最佳答案
我终于找到了答案。
SPIP使用法语作为默认语言,包括函数、关键字和。。。SQL列!
我需要使用objet
和id_objet
才能使此代码正常工作(请注意缺少的c
):
CREATE TABLE IF NOT EXISTS `spip_random` (
`id_random` bigint(21) NOT NULL AUTO_INCREMENT,
`objet` varchar(25) NOT NULL,
`id_objet` bigint(21) NOT NULL DEFAULT '0',
`type` text NOT NULL,
`date_picked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id_random`),
KEY `objet` (`objet`,`id_objet`),
KEY `id_random` (`id_random`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
关于mysql - SPIP API SQL,在自定义表上左联接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27252212/