多维数据传递到CodeIgniter中的View页面


Multidimentional data pass to View page in CodeIgniter

最近我在做一个项目时遇到了一个问题。

控制器页面

 if ($result -> num_rows () ==1) {
        $info['stu_data']=array();
        $i=0;
        $rs= $this -> db -> query ($this -> User_model -> view_action());
        if ($rs -> num_rows() > 0) {
          foreach ($rs -> result() as $rows) {
            $info [$i]['stu_name'] = $rows -> stu_name;
            $info [$i]['username'] = $rows -> username ;
            $info [$i]['roll'] = $rows -> roll ;
            $info [$i]['password'] = $rows -> password ;
            $info [$i]['first'] = $rows -> first;
            $info [$i]['second'] = $rows -> second ;
            $info [$i]['third'] = $rows -> third;
            $info [$i]['fourth'] = $rows -> fourth;
            $info [$i]['fifth'] = $rows -> fifth ;
            $i++;
          }
        }
        //$data['data']=$this -> User_model -> view_action();
        //print_r($info);
       $this -> load -> view ('add',$info);
    }

视图页面是

<?php
var_dump($stu_data); 
?>

但我在add.php页面上看到了"注意"。但是控制器页面上$info变量的值是可以的

请解决这个问题。

$info['stu_data']不是由您的fetch方法填充的!

从查询中获取结果时,请尝试使用$info ['stu_data']而不是仅使用$info

此外,正如Rocket Hazmat所提到的,您可以通过不使用辅助变量(在您的情况下为[$i])和动态创建数组来简化当前的获取过程。


优化代码

if ($rs -> num_rows() > 0) {
      foreach ($rs -> result() as $rows) {
        $info['stu_data'][] = array('stu_name' => $rows -> stu_name, 'username' => $rows -> username, 
        'roll' => $rows -> roll, 'password' = $rows -> password, 'first' => $rows -> first,
        'second' => $rows -> second, 'third' => $rows -> third, 'fourth' => $rows -> fourth, 
        'fifth' => $rows -> fifth);
      }

使用此代码将数据传递到查看页面。它使用起来很简单,也很容易理解。

if ($result -> num_rows () ==1) {
    $i=0;
    $rs= $this -> db -> query ($this -> User_model -> view_action());
    if ($rs -> num_rows() > 0) {
      foreach ($rs -> result() as $rows) {
        $data['stu_name'] = $rows -> stu_name;
        $data['username'] = $rows -> username ;
        $data['roll'] = $rows -> roll ;
        $data['password'] = $rows -> password ;
        $data['first'] = $rows -> first;
        $data['second'] = $rows -> second ;
        $data['third'] = $rows -> third;
        $data['fourth'] = $rows -> fourth;
        $data['fifth'] = $rows -> fifth ;
        $info['stu_data'][$i]=$data;
        $i++;
      }
    }
    //$data['data']=$this -> User_model -> view_action();
    //print_r($info);
   $this -> load -> view ('add',$info);
}

我希望你能得到你的解决方案。