2014-12-02 78 views
1

使用SPIP,我试图建立一个系统,每天都会选择一篇随机文章。我需要存储当天的文章主要有两个原因:SPIP API SQL,左加入自定义表

  • 确保每个人都有一天
  • 避免在同一篇文章的同一篇文章的其他日子
被拾起第二次

为了能够存储选择的项目,我创建了一个通用表:

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)时,应jonction和spip_articles之间spip_random进行描述,因为我已经有了这两个领域:

  • object
  • id_object

但nothi ng返回。

如果我试试这个简单的循环,它会显示正确的#ID_OBJECT

<BOUCLE_day(spip_random) {par date_picked} {inverse} {0,1}> 
    #ID_OBJECT 
</BOUCLE_day> 

我根本无法加入我的自定义表(spip_random)和ARTICLESspip_articles)。我错过了什么吗?

回答

1

我终于找到答案。

SPIP使用法语作为其默认语言,包括函数,关键字和...... SQL专栏!你为什么不使用公布之日起

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; 
0

我需要使用objetid_objet获得此代码工作(注意失踪c)?然后只显示当天的文章。