Я хочу, чтобы вычислить конкретное поле в моей БД зависит от ID_number - PullRequest
0 голосов
/ 28 марта 2019

Это моя модель

public function total_late()
    {

        $query = "SELECT sum(late_deduction) as late_deduction FROM tbl_dtr";
        $result = $this->db->query($query);
        return $result->row()->late_deduction;
    }

Это изображение базы данных:

db

Это изображение моего стола:

table

Это моя другая модель для моего стола в поле зрения

function get_faculty_payroll($limit, $start, $string = "", $orderField, $orderDirection)
    {  
       $this->db->group_start()
                        ->where('tbl_employee' . '.department_id', 3)
                ->group_end()
                ->group_start()
                        ->or_like('first_name', $string)
                        ->or_like('last_name', $string)
                ->group_end()
                ->join('tbl_employee_department', 'tbl_employee.department_id = tbl_employee_department.department_id')
                ->join('tbl_rates', 'tbl_employee.ID_number = tbl_rates.ID_number')
                ->limit($limit, $start)
                ->order_by($orderField, $orderDirection);
       $query = $this->db->get('tbl_employee');
       return $query->result();
    }

Это мой стол:

enter image description here

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Ваш контроллер

public function total_late()
{
    $retRes=$this->modelname->total_late($ID_number);
}

Ваша модель

public function total_late($ID_number)
{

    $query = "SELECT sum(late_deduction) as late_deduction
              FROM tbl_dtr WHERE ID_number = '$ID_number'";
    $result = $this->db->query($query);
    return $result->row()->late_deduction;
}

Однако этот код лучше, так как он обрабатывает параметры безопасно и избегает уязвимостей SQL-инъекций:

$stmt = $this->db->prepare("
    SELECT sum(late_deduction) as late_deduction
    FROM tbl_dtr WHERE ID_number = ?
");

$stmt->execute(array($ID_number));
0 голосов
/ 28 марта 2019

Попробуйте,

public function total_late()
{
  $query = "SELECT sum(late_deduction) as late_deduction FROM tbl_dtr where ID_number = 'C-08011'";
  $result = $this->db->query($query);
  return $result->row()->late_deduction;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...