我创建了一个小项目,显示来自CodeIgniter中数据库的服装项目。数据来自数据库并且它正在工作,我已经在where where条件下检查类别以及条件不起作用。它不显示特定结果,而是显示所有数据库表结果。我通过url传递category参数。我已经自动加载了数据库。
当用户点击Men's链接
时,这是我在主页中传递参数的方式<a class="dropdown-item" href="<?php echo base_url();?>index.php/Products/view/mens">Men's</a>
这是控制器
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Products extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('GetData');
}
public function view()
{
$category_name = $this->uri->segment(3);
$this->GetData->get_data($category_name);
$result = $this->GetData->get_data();
$data['result'] = $result;
$this->load->view('products',$data);
}
}
/* End of file Products.php */
/* Location: ./application/controllers/Products.php */
?>
这是模型
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class GetData extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function get_data($category_name=0){
$query = $this->db->get_where('mens', array('category' => $category_name));
return $query->result();
}
}
/* End of file GetData.php */
/* Location: ./application/models/GetData.php */
?>
数据库表字段 - id,category,category_name,img_path,item_name
我使用where条件来检查类别是否等于男性以及是否显示结果......并且表中有一行class = women。但不是显示特定结果,而是显示所有结果。
答案 0 :(得分:1)
型号:
public function get_data($category_name){
$query = $this->db->get_where('mens', array('category' => $category_name));
return $query->result();
}
控制器:
public function view()
{
$category_name = $this->uri->segment(3);
$result = $this->GetData->get_data($category_name);
$data['result'] = $result;
$this->load->view('products',$data);
}
检查一下。
请检查$ category_name的第一个值是否存在。
//删除$this->GetData->get_data($category_name)
;来自控制器,因为您已经再次定义了这个。不知道你在控制器中两次调用相同功能的原因。