【问题标题】:Display query in view codeigniter在视图 codeigniter 中显示查询
【发布时间】:2011-06-10 16:21:20
【问题描述】:

假设来自我的控制器的查询是 $query。
除了使用这种代码,如何显示数据?

foreach($query as $row){
echo $row->student_id;
}

除此之外的任何其他因为查询只有一行
有什么方法可以像这样访问返回的数组?

$query['student_id'];

【问题讨论】:

  • 另一种选择是将数据存储在一个会话中,该会话可以在您站点的任何位置访问,而无需每次都进行查询。一些适合存储在会话中的数据是用户名或用户 ID。 codeigniter.com/user_guide/libraries/sessions.html

标签: codeigniter


【解决方案1】:

假设您的表格有以下字段

student_id and student_name

让您的模型或控制器只返回一行。

function get_first_student() {

    $query = this->db->select('*')->from('student')-where('student_id','1')->limit(1);
    $data['stuff'] =  $query->row_array(); // or $query->row() which returns an object
    $this->load->view('whatever',$data)

}

那么在你看来

<p>student name: <?= $stuff['student_name'] ?> </p>
<p>student id: <?= $stuff['student_id'] ?> </p>

【讨论】:

    【解决方案2】:

    实际上,$query-&gt;row() 只是获取第一行。

    因此,您可以这样做,而不是循环遍历结果:

    $student_id = $query->row()->student_id; // (untested)
    

    $row = $query->row();
    $student_id = $row->student_id;
    

    假设查询总是返回一行。

    【讨论】:

      【解决方案3】:

      假设您正在显示用户的个人资料。将所有数据库查询存储在 MODEL 中是一种很好的做法。我用这个:

      控制器:

      $this->load->model('Profile');
      $data['row'] = $this->Profile_model->profile_read(); //get profile data
      $this->load->view('profile_view', $data); //load data to view
      

      型号:

      function profile_read()
      {
              $this->db->where('user_id', $user_id);
              $query = $this->db->get('user_profiles'); //get all data from user_profiles table that belong to the respective user
              return $query->row(); //return the data    
      }
      

      在模型中,您可以拥有所有其他数据库功能(创建、删除、更新)

      查看:

      <?php echo $row->name; ?>
      <?php echo $row->email; ?>
      <?php echo $row->about; ?>
      etc
      

      最后,您可以在视图中回显属于用户的表中的任何行。

      【讨论】:

        猜你喜欢
        • 2018-09-26
        • 1970-01-01
        • 2013-09-16
        • 1970-01-01
        • 2018-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多