Php 为什么它不显示foreach的结果?
我的模型中有以下查询Php 为什么它不显示foreach的结果?,php,sql,codeigniter,Php,Sql,Codeigniter,我的模型中有以下查询 public function buscar_horario($date_start, $date_end, $rut_usu){ $query = $this->db->query("select * from ( SELECT hrs_ini ,hrs_ter , lunes, martes, miercoles, jueves, viernes, sabado, fecha_registro, id_hr FROM horario INNER
public function buscar_horario($date_start, $date_end, $rut_usu){
$query = $this->db->query("select * from (
SELECT hrs_ini ,hrs_ter , lunes, martes, miercoles, jueves, viernes, sabado,
fecha_registro, id_hr
FROM horario
INNER JOIN usuarios ON horario.rut_usu = usuarios.rut_usu
WHERE usuarios.rut_usu= '$rut_usu' AND date(horario.fecha_ini) BETWEEN date('$date_start') AND date('$date_end') AND
fecha_registro = (SELECT MAX(fecha_registro) FROM horario where rut_usu = '$rut_usu' ) ORDER BY id_hr DESC LIMIT 14
) tmp order by tmp.id_hr asc ");
return $query;
}
我想在另一个视图中显示的结果,因此控制器是这样做的
public function buscar_horario(){
$rut_usu = $this->input->get('rut_usu');
$date_start = $this->input->get('date_start');
$date_end = $this->input->get('date_end');
$data['query'] = $this->M_Consultar_Horarios->buscar_horario($rut_usu,$date_start, $date_end);
$this->load->view('usuarios/consultar_horario.php',$data);
}
在视图中,我通过foreach显示它,但它不显示结果,如果我使用数据库中相同的参数执行查询,它将正确显示
foreach($query->result_array() as $row){
$html .= '<tr>
<td style=" background-color:#f2f2f2;"> '.$row->hrs_ini.'</td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->hrs_ter.'</td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->lunes.' </td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->martes.' </td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->miercoles.' </td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->jueves.' </td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->viernes.' </td>
<td style="text-align:center; background-color:#f2f2f2;">'.$row->sabado.' </td>
</tr>'; }
foreach($query->result\u array()作为$row){
$html.='
“.$row->hrs_ini”
“.$row->hrs\u ter”
“.$row->lunes。”
“.$row->martes。”
“.$row->miercoles。”
“.$row->jueves。”
“.$row->viernes”
“.$row->sabado”
'; }
搜索参数传递正确,因为我正在结果视图中打印它们要修复您的方法,您需要在foreach循环之前定义$html:
<?php
$html='';
foreach($query->result_array() as $row){
$html .= '<tr>
<td style=" background-color:#f2f2f2;"> '.$row->hrs_ini.'</td>
// etc...
</tr>';
}
?>
并按如下方式输出:
<?php
echo $html;
?>
你在用$html
做什么?到目前为止,您没有打印任何内容。如果希望最后一块代码打印行,请将$html.=
替换为echo
。foreach在html中(我使用一个库将其显示为pdf,这就是为什么变量$html,在使用另一种形式的codeigniter查询之前,我已经成功地使用了$this->db->select bla),但这样它就不会显示结果,所以我想我需要向模型查询中添加一些东西,这样做也会很有用,我想,这样会得到一个很好的结果$this->db->select(),$this->db->from(),但我不知道查询应该是怎样的,因为tmp向我抛出一个语法错误,这是我尝试的result\u array()
显然返回数组。使用[]
而不是->
访问数组元素。