如何在CodeIgniter上显示连接3个表的结果?

iqjalb3h  于 2023-11-14  发布在  其他
关注(0)|答案(1)|浏览(101)

在library/comment.php上的链接

function getSelectedOneFieldJoin2TblGroupOrder($select, $table, $where, $join_table1, $join_condition1, $join_table2, $join_condition2, $order_by=null)
{
    $this->CI->db->select($select);
    $this->CI->db->from($table);
    
    $where2 = substr($where,6);
    $this->CI->db->where($where2);
          
        $this->CI->db->join($join_table1, $join_condition1, 'left');
        $this->CI->db->join($join_table2, $join_condition2, 'left');
            
    $this->CI->db->order_by($order_by);

    $query = $this->CI->db->get();
    $result = $query->row_array();

    if ($result) {
        return $result[$select];
    }
    
    return null; 
}

字符串
在控制器/ Jmeter 板. php上

$res1=$this->common->getSelectedOneFieldJoin2TblGroupOrder(
" 'Product Order Placed' as activity_title, u.created_on as created_on, m.first_name AS created_by",
"tbl_product_order u",
"WHERE u.status != 2 and u.status != 0",
"tbl_package_master p", // $join_table1
"p.id = u.package_id",
"tbl_user_master m", // $join_table2
"m.user_id = u.user_id",
"u.created_on", "ASC"
 );


在view/dashboard.php上查看

foreach($form_data as $Res)
{
    echo $Res['activity_title'] . " :: ";
    echo $Res['created_on'];
}


显示空结果。
当我把return**$result[$select];改为return $result;**时,它会显示3个结果,但在数组索引中没有值...
如何正确显示结果?

yshpjwxd

yshpjwxd1#

$query->row_array()只返回结果集的第一行,作为一个数组,以您在SELECT中指定的字段作为其键。
我无法从你的问题中判断出你是想只显示结果集中的第一行还是所有行,所以:

  • 如果你想显示结果集中的所有行,将$query->row_array()改为$query->result_array(),并在视图中保持foreach循环。
  • 或者,如果你想只显示结果集中的第一行,那么就保持查询现在的状态(使用$query->row_array()),并从视图中删除foreach循环,只保留echo语句:
echo $form_data['activity_title'] . " :: ";
  echo $form_data['created_on'];

字符串

相关问题