无法根据codeigniter中的id显示数据

时间:2016-08-09 12:06:29

标签: php mysql codeigniter

我有一个客户列表,点击每个客户端我希望仅显示该特定客户的详细信息,为此我使用了以下代码。

客户列表的视图是这样的

id  fullname
1     A
2     B
3     C
  

当我点击A时,我会被重定向到其网址为http://localhost/projname/admin/client/1

的其他网页      

当我点击B时,我会被重定向到其网址为的其他网页   http://localhost/projname/admin/client/2

     

等等......根据点击情况,ID会不断变化

但问题是,当我尝试在client_detail_view.php页面中显示数据时,我只得到第一个id的数据,即id = 1

codeigniter的结构是

controllers
    -admin.php
model
    -admin_model.php
views
    -admin  
        -client_view.php
        -client_detail_view.php

admin.php的代码

public function client($clientid)
        {
            $data['client_data'] = $this->admin_model->get_client($clientid);
            $this->load->view('admin/client_detail_view',$data);
        }

admin_model.php的代码

public function get_client($id)
            {
                $query = $this->db->get('users');
                $this->db->where('id', $id);
                return $query->row();
            }

client_view.php的代码

<?php foreach($client as $perclient): ?>
    <tr>
        <?php echo "<td><a href='". base_url() ."admin/client/".$perclient->id."'>" . $perclient->fullname . "</a></td>"; ?>
        <td><?php echo $perclient->email; ?></td>
        <td><?php echo $perclient->contactno; ?></td>
    </tr> 
<?php endforeach; ?> 

client_detail_view.php的代码

<?php echo $client_data->fullname; ?>

2 个答案:

答案 0 :(得分:0)

似乎查询是运行beofre设置所以它正确地返回第一个记录。 设置条件beofre查询

答案 1 :(得分:0)

您可以更改模型功能:

<强> admin_model.php

public function get_client($id)
{
     $this->db->where('id' => $id);
     $query = $this->db->get('users');
     return $query->row();
}