我的'intervalos'包含很多'entregas'所以当我点击时我想计算行数,但它总是返回'1'作为结果。我究竟做错了什么?请帮忙。
Entregas Controller
public function entregas_lista($idCarga) {
$crud = new grocery_CRUD();
$this->Entregas_Model->get_rows($idCarga);
$this->load->view('commons/header', $datos);
$crud->set_language("spanish");
$crud->set_theme('bootstrap');
$crud->set_table('entregas');
$crud->unset_columns(array('accion', 'estado'));
$crud->display_as('idIntervaloHorario', 'Franja Horaria');
$crud->display_as('idAcciones', 'Acción');
$crud->display_as('idEstadoSolicitud', 'Estado Solicitud')->display_as('fechaCita', 'Fecha Cita')
->display_as('horaCita', 'Hora Cita')
->display_as('numeroEntrega', 'Nº Entrega')
->display_as('Origen', 'Orígen')
->display_as('cargaPrevista', 'Carga Prevista')
->display_as('entregaPrevista', 'Entrega Prevista');
//Clausula where
$crud->where('entregas.idIntervaloHorario =', $idCarga);
$crud->display_as('idCarga', 'Nº Entrega');
$crud->set_relation('idCarga', 'intervalosHorarios', 'intervaloHorario');
$crud->set_relation('idIntervaloHorario', 'intervalosHorarios', 'intervaloHorario');
//Relación con la tabla acciones
$crud->set_relation('idAcciones', 'acciones', 'nombreAccion');
//Relación con la tabla estado
$crud->set_relation('idEstadoSolicitud', 'estadosolicitudes', 'nombreEstado');
$output = $crud->render();
$this->_example_output($output);
Entregas Model
public function get_rows($idCarga) {
$query = $this->db->query('SELECT COUNT(*) FROM entregas
JOIN intervaloshorarios on intervaloshorarios.idIntervaloHorario = entregas.idCarga
WHERE entregas.idIntervaloHorario = ' . $idCarga . ';');
$query = $this->db->count_all_results();
$num_rows = count($query);
print_r($num_rows);
return $num_rows;
}
答案 0 :(得分:1)
不同的方法:
public function get_rows($idCarga) {
$query = $this->db->query('SELECT COUNT(idCarga) as count FROM entregas
JOIN intervaloshorarios on intervaloshorarios.idIntervaloHorario = entregas.idCarga
WHERE entregas.idIntervaloHorario = ?'); // Safer with bound parameters
$stmt = $db->prepare($query); // prepare
$stmt->bind_param('s',$idCarga); // bind the parameter
$stmt->execute(); // execute
$stmt->bind_result($count);
$stmt->fetch();
return $count;
}
答案 1 :(得分:0)
根据您的查询,您需要提出COUNT
$query = $this->db->query('SELECT COUNT(*) FROM entregas
JOIN intervaloshorarios on intervaloshorarios.idIntervaloHorario = entregas.idCarga
WHERE entregas.idIntervaloHorario = ' . $idCarga . ';');
所以基本上,如果你在phpmyasmin或mysql提示符中运行它,它会给你一个结果,即适合你查询的'COUNT'记录。
我不知道你的接口方法,所以我只是建议得到这个结果的值。这将是你的行数。
或者,您可以简单地执行SELECT然后计算行数,但这会增加您的结果集和获取时间,只需计算sql可以自己计算的内容。