不用的哈,用什么PHP框架,就要多看这个框架的手册。
http://document.thinkphp.cn/manual_3_2.html#where,
就如此题来说,你传递过来的id值,就是表的主键。
pid一般是为父键的意思,$catemodel->where('pid=%d',$_GET['id'])->select();
查询的是这个id所对应子集的。
楼上所说这种,有点曲解楼主的意思。楼主的意思,估计就是子集没数据的缘故。
不需要
先说一个基本的sql语句:select field from table join table2 in table2.fieldx match tabe.fieldy where field match value and/or field2 match value2 order by order_field desc
在TP中,首先通过D或者M函数,获得一个table的对应类如$user
然后,定义你想要的字段 $query = $user->field(array)
然后,定义where条件 $query->where(条件数组)
然后,定义额外的内容,如排序,$query->order(排序条件数组),如表关联$query->join(关联条件数组)
最后,执行查询操作,$query->select()
另外,对于已知主键的查询,TP中可以使用find函数,如$user->find(1),查找主键为1的user。当然前提是表的默认主键符合TP规定,一般是id,可以通过在model中将$primary(好像是这个属性)设定为表中的主键来更改默认值
楼主可以看下tp的数据库操作类
$catemodel->where('pid=%d',$_GET['id'])->select(); 这样写 sql的操作语句是这样的
select *from catemodel where 'pid' = xxx;(貌似有出入,具体的忘了,你也可以dump一下);
如果$_GET的东西不规范可能就查询不到,建议使用如下方式
$catemodel->where("'pid'='".$_GET['id']."'")->select();
$data['pid'] = $_GET['id']; $list = $catemodel->where($data)->select();
ThinkPHP中的WHERE不需要包含主键,查询过程跟普通查询中的WHERE一样的。
主键查询 更快,其他也可以进行查询,数据量大可以加索引改善,主要还看SQL和数据库表结构的建立