Jake帮忙看一下,怎么关联表呢,还是不行?

#1 怀念曾经

CREATE TABLE `gr_vote_subject` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(255) CHARACTER SET utf8 NOT NULL,
   `CreateTime` int(11) DEFAULT NULL,
   `UpdateTime` int(11) DEFAULT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Id` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
insert into `gr_vote_subject` (`ID`, `Name`, `CreateTime`, `UpdateTime`) values('1','关于**1的问卷调查!',NULL,NULL);
insert into `gr_vote_subject` (`ID`, `Name`, `CreateTime`, `UpdateTime`) values('2','关于**2的问卷调查!',NULL,NULL);

CREATE TABLE `gr_vote_title` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `SubjectID` int(11) NOT NULL,
   `Name` varchar(255) CHARACTER SET utf8 NOT NULL,
   `Type` varchar(50) CHARACTER SET utf8 NOT NULL,
   `CreateTime` int(11) DEFAULT NULL,
   `UpdateTime` int(11) DEFAULT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
insert into `gr_vote_title` (`ID`, `SubjectID`, `Name`, `Type`, `CreateTime`, `UpdateTime`) values('1','1','性别','1',NULL,NULL);
insert into `gr_vote_title` (`ID`, `SubjectID`, `Name`, `Type`, `CreateTime`, `UpdateTime`) values('2','1','年级','1',NULL,NULL);

Subject.php
class Subject extends spModel {
var $pk="ID";
var $table="Subject";
var $linker = array(
array(
'type' => 'hasmany',
'map' => 'Title',
'mapkey' => 'ID',
'fclass' => 'Title',
'fkey' => 'SubjectID',
'enabled' => true
),
);
}
?>

Title.php
class Title extends spModel {
var $pk="ID";
var $table="Title";
}
?>


main.php
class main extends spController
{
function index(){

$Mo_Subject=spClass('Subject');
dump($Mo_Subject->spLinker()->findall());

}
}


显示不了关联的数据,哪里出错了,麻烦大家帮忙看一下!

2010-10-08 23:06:36

#2 jake

可以先试试两个表的主键不要同名(上面的两表主键都是ID)

2010-10-09 08:39:31

#3 怀念曾经

还是不行!

CREATE TABLE `gr_vote_title` (
   `Title_ID` int(11) NOT NULL AUTO_INCREMENT,
   `SubjectID` int(11) NOT NULL,
   `Name` varchar(255) CHARACTER SET utf8 NOT NULL,
   `Type` varchar(50) CHARACTER SET utf8 NOT NULL,
   `CreateTime` int(11) DEFAULT NULL,
   `UpdateTime` int(11) DEFAULT NULL,
   PRIMARY KEY (`Title_ID`),
   UNIQUE KEY `ID` (`Title_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
Title.php

class Title extends spModel {
        public $pk="Title_ID";
        public $table="Title";
}
?>

2010-10-09 08:58:52

#4 jake

可以先试试两个表的主键不要同名(上面的两表主键都是ID)
jake 发表于 2010-10-9 08:39
同理,你可以试试把一些相同的名称先改成不同的,比如说Title,mapkey是Title,然后表的Class也是Title。这样做是不正确的。
另外,建议直接参考手册上面的例子,然后再一步一步改成自己想要的!

2010-10-09 09:55:28