I have defined private variables in my CodeIgniter code like this:
private $table = 'phone';
private $column_order = array(null, 'name', 'price');
private $type = array('type');
private $battery_consumption = array('battery_consumption');
Now, I want to use these variables in my private model :
private get_data_query(){
$this->db->select($this->column_order);
$this->db->select_sum($this->battery_consumption);
$this->db->from($this->table);
$this->db->group_by($this->type);
}
Next, I call that private function within my public functions to retrieve data from the table :
function get_datatables(){
$this->_get_data_query();
if($_POST['length'] != -1)
$this->db->limit($_POST['length'], $_POST['start']);
$query = $this->db->get();
return $query->result();
}
function count_filtered()
{
$this->_get_data_query();
$query = $this->db->get();
return $query->num_rows();
}
public function count_all()
{
$this->db->from($this->table);
return $this->db->count_all_results();
}
In Controller:
public function get_data_phone()
{
$list = $this->m_phone->get_datatables();
$data = array();
$no = $_POST['start'];
foreach ($list as $field) {
$row[] = $no;
$row[] = $field->name;
$row[] = $field->type;
$row[] = $field->price;
$row[] = $field->battery_consumption;
$data[] = $row;
}
$output = array(
"draw" => $_POST['draw'],
"recordsTotal" => $this->m_request->count_all(),
"recordsFiltered" => $this->m_request->count_filtered(),
"data" => $data,
);
echo json_encode($output);
}
In View:
<div class="card-block">
<div class="dt-responsive table-responsive">
<table id="phone" class="ui celled table" style="width:100%">
<thead>
<tr>
<th>No</th>
<th>Phone Name</th>
<th>Phone Type</th>
<th>Phone Price</th>
<th>Battery Health</th>
</tr>
</thead>
</table>
</div>
</div>
Datatable query:
let table;
$(document).ready(function() {
phone_data();
function phone_data() {
table = $('#phone').DataTable({
"processing": true,
"serverSide": true,
"order": [],
"ajax": {
"url": "<?= site_url('phone/get_data_phone') ?>",
"type": "POST",
},
"columnDefs": [{
"targets": [0],
"orderable": false,
}, ],
});
}
});
If you are encountering errors with the select_sum() function in your model, you may need to check the syntax and ensure that the database query is constructed correctly. Additionally, debugging tools or error logs can help identify any specific issues.