Php 如何选择家长的子女编号?
我有一个表,它有子表和父表,父表的pid为0,子表的id为父表的id。我要选择具有该父项的子项编号的父项 我的模型:Php 如何选择家长的子女编号?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个表,它有子表和父表,父表的pid为0,子表的id为父表的id。我要选择具有该父项的子项编号的父项 我的模型: function parent_child() { $row1 = "SELECT tbl_test.ID,tbl_user.Name,tbl_user.FamilyName, tbl_test.Name from tbl_test,tbl_user WHERE tbl_user.UID=
function parent_child()
{
$row1 =
"SELECT tbl_test.ID,tbl_user.Name,tbl_user.FamilyName,
tbl_test.Name
from tbl_test,tbl_user
WHERE tbl_user.UID=tbl_test.UserID
AND tbl_test.PID=0
AND tbl_test.Status=0
";
$parent=$this->db->query($row1)->result();
foreach ($parent as $row)
{
$row1 =
"SELECT COUNT(ID)
from tbl_test
WHERE tbl_test.PID IN $row->ID ";
$parent['childcount']=$this->db->query($row1)->result();
return $parent;
}
我的控制器:
public function parent_child()
{
$this->load->model('test');
$temp=$this->test->parent_child();
$output= json_encode($temp);
die($output);
}
我想要这个输出
{
"parent": {
"ID": "2",
"childcount": 3
}
}
您可以使用Codeigniter查询Bulider
$this->db->select('tbl_test.ID');
$this->db->from('tbl_test');
$this->db->join('tbl_user', 'tbl_user.PID = tbl_test.ID');
$this->db->where('tbl_test.Status', '0');
$result = $this->db->count_all_results();
return $result;
试试这个
public function parent_child()
{
$st=$this->db->select('SELECT tbl_test.ID, tbl_test.Name, tbl_user.Name, tbl_user.FamilyName from
tbl_test
JOIN
tbl_user on tbl_user.UID=tbl_test.UserID
WHERE
tbl_test.PID=0 AND
tbl_test.Status=0')->result_array();
if(count($st)>0)
{
for($i=0;$i<count($st);$i++)
{
$rows=$this->db->select('*')->from('tbl_test')->WHERE('PID',$st[$i]['id'])->get()->result_array();
$st[$i]['childcount']=count($rows);
}
return $st;
}
else
{
return array();
}
}
在这种情况下,如何使用具有键值的foreach