thinkphp多表查询
这个是A表这个是B表查询B表获取出来的ID如下[id]=>4[aid]=>4[bid]=>7[cid]=>9。当分配到模板时,如id=4时,aid不是显示4而是显示A表I...
这个是A表
这个是B表
查询B表获取出来的ID如下
[id] => 4 [aid] => 4 [bid] => 7 [cid] => 9。当分配到模板时,如id=4时,aid不是显示4而是显示A表ID对应4的(大类一子类一),我用的是thinkphp,并且B表已经与其他表关联了 展开
这个是B表
查询B表获取出来的ID如下
[id] => 4 [aid] => 4 [bid] => 7 [cid] => 9。当分配到模板时,如id=4时,aid不是显示4而是显示A表ID对应4的(大类一子类一),我用的是thinkphp,并且B表已经与其他表关联了 展开
1个回答
展开全部
$data['id'] = $id;
M('A')->where($data)->join('B ON A.id = B.id')->selsct();
M('A')->where($data)->join('B ON A.id = B.id')->selsct();
更多追问追答
追问
B表的aid,bid,cid与A表的id对应。A表是个栏目表,B表中如id是4的这一行,他的aid,bid,cid放的是A表的分类,也就是说读取B表当ID等于4时, [aid] => 6 [bid] => 7 [cid] => 12,在模板显示不要是6,7,12,而是 大类一子类三,大类二子类一,大类三子类三,不知道说明白没,追加啊
追答
用最笨的方法,自己配个数组,数据量也不大
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
$test = D('Index');
$id = 2;
$data = $test->getData($id);
//print_r($data);
$this->data = $data;
$this->display();
}
}
?>
namespace Home\Model;
use Think\Model;
class IndexModel extends Model{
public function getData($id){
$map['id'] = $id;
$test = M('two')->where($map)->find();
$aid = M('test')->where('id='.$test['aid'])->find();
$bid = M('test')->where('id='.$test['bid'])->find();
$cid = M('test')->where('id='.$test['cid'])->find();
return array($aid,$bid,$cid);
}
}
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询