Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么它不显示foreach的结果?_Php_Sql_Codeigniter - Fatal编程技术网

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;">&nbsp;&nbsp;&nbsp; '.$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;">&nbsp;&nbsp;&nbsp; '.$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()
显然返回数组。使用
[]
而不是
->
访问数组元素。