//Anyone can help to create a view data with same id? it is a multiple viewing.
这是我的控制器。我不适用于模型和视图
function Get_Pitch($id){
$this->load->model('users_model');
$data['query'] = $id;
$this->load->view('view_pitch', $data);
}
Example this is my url "http://localhost/SMS_System/home/sample/102"
在我的数据库中
id=1 name=erwin user_id=102
id=2 name=flores user_id=102
id=3 name=sample user_id=202
如何查看相同的user_id?
答案 0 :(得分:1)
首先,根据您提供的内容,您的网址将无效,您不会遵循CI的常规约定,因此无法知道在哪里查看。我假设您的控制器被称为样本然后您需要告诉应用程序您在该控制器中调用哪个函数,最后URL名称应该是小写,所以我更改了,所以您的URL应该是:
“HTTP://本地主机/ SMS_System /家/样品/ get_pitch / 102”
此外,您需要从模型中获取数据,加载模型然后不使用它。加载模型后的行调用该模型中的函数,并将其从您的URL传递给它。请注意,如果id不是isset,这可以确保如果某人没有id段进入该页面,则没有从具有缺失参数的模型中抛出错误,它将只返回任何内容,在视图中处理。
控制器:
function get_pitch($id){
//the following line gets the id based on the segment it's in in the URL
$id=$this->uri_segment(3);
if(!isset($id))
{
$id = 0;
}
$this->load->model('users_model');
$data['query'] = $this->users_model->getUserData($id);
$this->load->view('view_pitch', $data);
}
您的模型采用从控制器传递的id并使用它从数据库中检索数据。我通常会创建我将作为空数组返回的数组并在视图中处理它,这可以确保在查询失败时不会出现错误。然后数据返回到最后一行的控制器,并传递给加载视图调用中的视图。
型号:
function getUserData($id)
{
$this->db->where('id',$id);
$result = $this->db->get('users') //assuming the table is named users
$data = array(); //create empty array so we aren't returning nothing if the query fails
if ($result->num_rows()==1) //only return data if we get only one result
{
$data = $result->result_array();
}
return $data;
}
然后,您的视图将通过控制器获取从模型接收的数据并显示它(如果存在),如果数据不存在,则会显示错误,指出用户不存在。 视图:
if(isset($query['id']))
{
echo $query['id']; //the variable is the array we created inside the $data variable in the controller.
echo $query['name'];
echo $query['user_id'];
} else {
echo 'That user does not exist';
}