Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何选择家长的子女编号?_Php_Mysql_Codeigniter - Fatal编程技术网

Php 如何选择家长的子女编号?

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=

我有一个表,它有子表和父表,父表的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=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