使用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_articlesspip_random之间完成,因为我有这两个字段:
object
id_object
但什么也不退还。
如果我尝试这个简单的循环,它会显示右边的#ID_OBJECT
<BOUCLE_day(spip_random) {par date_picked} {inverse} {0,1}>
    #ID_OBJECT
</BOUCLE_day>

我无法加入我的自定义表(spip_random)和ARTICLESspip_articles)。我遗漏了什么吗?

最佳答案

我终于找到了答案。
SPIP使用法语作为默认语言,包括函数、关键字和。。。SQL列!
我需要使用objetid_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/

10-09 00:36