关于一对一数据的关联问题

#1 Robin

两个表结构
CREATE TABLE IF NOT EXISTS `hostlist` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `uid` int(8) NOT NULL,
  `hostname` varchar(255) NOT NULL,
  `host` varchar(255) NOT NULL,
  `ftpusername` varchar(255) NOT NULL,
  `ftppassword` varchar(255) NOT NULL,
  `datetime` int(10) NOT NULL,
  PRIMARY KEY  (`id`,`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

--
-- 表的结构 `seolist`
--

CREATE TABLE IF NOT EXISTS `seolist` (
  `id` int(8) unsigned NOT NULL auto_increment,
  `h_id` int(8) NOT NULL,
  `dateline` int(10) NOT NULL,
  `gg_pr` varchar(255) NOT NULL,
  `gg_count` varchar(255) NOT NULL,
  `bd_pr` varchar(255) NOT NULL,
  `bd_count` varchar(255) NOT NULL,
  `photo` varchar(255) NOT NULL,
  `alexa` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`,`h_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;


第一张表和第二张表一对一关联 ,通过dateline 在今天的范围内显示数据
类:

class lib_host extends spModel  {
   

    var $pk = "id"; // 每个留言唯一的标志,可以称为主键  
   
    var $table = "hostlist"; // 数据表的名称  
   
// 由spModel的变量$linker来设置表间关联
        var $linker = array(
                array(
                        'type' => 'hasone',   // 关联类型,这里是一对一关联
                        'map' => 'detail',    // 关联的标识
                        'mapkey' => 'id', // 本表与对应表关联的字段名
                        'fclass' => 'lib_seo', // 对应表的类名
                        'fkey' => 'h_id',    // 对应表中关联的字段名
                        'enabled' => true     // 启用关联
                )
        );


}   


显示:
$result = $lib_host->spLinker()->spPager($this->spArgs('page', 1), 10)->findAll();
   
        
        $this->pager = $lib_host->spPager()->getPager();  
  dateline 的条件没限制的情况下 结果显示空  
请大侠帮忙解决下
        

2012-08-25 16:09:36

#2 jake

不明白。限制不限制dateline 是主表的事情,和关联没关系。

或者说,我猜你的想法是希望主表的dateline和从表的dateline一起做限制? 参考手册相关章节。

2012-08-25 21:40:43