0
내가 2 테이블을했습니다 및 datatables 서버 측에서 그들을 합류,하지만 난 잘못이야 어떤 관점에서의 쇼 중복 행,Datatables 필터 쇼 중복 행
모델 :
var $table = 'user_provider';
var $column_order = array(null,'u.nm_uprov','u.email','g.nm_gprov'); //set column field database for datatable orderable
var $column_search = array('u.nm_uprov','u.email','g.nm_gprov');
var $order = array('u.id_uprov' => 'desc'); // default order
function __construct(){
parent::__construct();
$this->load->database();
}
private function _get_datatables_query()
{
$this->db->from($this->table);
$this->db->select('*');
$this->db->from('user_provider as u');
$this->db->join('grup_provider as g','u.id_gprov = g.id_gprov');
$i = 0;
foreach ($this->column_search as $item) // loop column
{
if($_POST['search']['value']) // if datatable send POST for search
{
if($i===0) // first loop
{
$this->db->group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
$this->db->like($item, $_POST['search']['value']);
}
else
{
$this->db->or_like($item, $_POST['search']['value']);
}
if(count($this->column_search) - 1 == $i) //last loop
$this->db->group_end(); //close bracket
}
$i++;
}
if(isset($_POST['order'])) // here order processing
{
$this->db->order_by($this->column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
}
else if(isset($this->order))
{
$order = $this->order;
$this->db->order_by(key($order), $order[key($order)]);
}
}
컨트롤러 :
public function ajax_list()
{
$list = $this->M_user_provider->get_datatables();
$data = array();
$no = $_POST['start'];
foreach ($list as $uprov) {
$no++;
$row = array();
$row[] = $no;
$row[] = $uprov->nm_uprov;
$row[] = $uprov->email;
$row[] = $uprov->nm_gprov;
//add html for action
$row[] = '<a class="btn btn-info btn-fill btn-sm" href="javascript:void(0)" title="Edit" onclick="edit_pic('."'". $uprov->id_uprov."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
<a class="btn btn-danger btn-fill btn-sm" href="javascript:void(0)" title="Hapus" onclick="delete_pic('."'".$uprov->id_uprov."'".')"><i class="glyphicon glyphicon-trash"></i> Hapus</a>';
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->M_user_provider->count_all(),
"recordsFiltered" => $this->M_user_provider->count_filtered(),
"data" => $data,
);
//output to json format
echo json_encode($output);
}
테이블 :
이 "(2 개 전체 항목에서 여과) 4 (4)의 항목 표시 1"을, 나는 무엇이 잘못되었는지 모든 테이블이 중복 행을 표시 제외하고 잘 작동하는지 모르겠다.
테이블 구조를 게시하시기 바랍니다, 절 "에서"먼저 제거하십시오. –
네, 테이블 구조를 추가했습니다. 제발 봐주세요. –