搜索不在codeigniter中工作的产品数据

时间:2017-11-14 13:06:22

标签: php codeigniter codeigniter-3

我尝试创建一个搜索栏,以便用户可以搜索产品名称,但不能正常搜索产品,但我无法搜索产品。

这是我的控制器功能:

<?php
class SearchController extends CI_Controller {
  function __construct(){
     parent::__construct();
     $this->load->model('Search_model');
  }

  public function index(){
     $data = array();
  }

  function search_keyword(){
    $keyword = $this->input->post('keyword');
    $data['results'] = $this->Search_model->search($keyword);
    //laad de view
    $this->load->view('result_view',$data);
  }
}
?>

这是我的模特功能:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Search_model extends CI_Model  {  
    function __construct(){
        parent::__construct();
    }

    function search($keyword) {
        $this->db->select('product_naam');
        $this->db->like('product_naam',$keyword);
        $query  =   $this->db->get('products');
        return $query->result_array();
    }
}
?>

这是我的搜索栏视图文件:

<?php include_once('templates/header.php');  ?>
  <center>
    <h2>Zoek een cadeau</h2><br>
      <form class="navbar-form" role="search" action="<?php echo base_url(); ?>SearchController/search_keyword" method="POST">
          <div class="input-group">
              <input type="text" class="form-control" placeholder="Search" name="keyword" size="30px; ">
              <div class="input-group-btn">
                  <button class="btn btn-default " type="submit" value = "Search"><i class="glyphicon glyphicon-search"></i></button>
              </div>
          </div>
      </form>
  </center>
    <div class="clearfix"></div>
  <table>
    <?php foreach($results as $row){ ?>
      <tr>
        <td><?php echo $row->product_naam?></td>
      </tr>
    <?php } ?>
  </table>
<?php include_once('templates/footer.php'); ?>

我希望有人可以帮我解决这个问题! 感谢

2 个答案:

答案 0 :(得分:1)

因为您使用$query->result_array();,所以项目应由

执行
<td><?php echo $row['product_naam']?></td>
  

<强> result_array()

     

此方法将查询结果作为纯数组返回,或者为空   没有产生结果的数组

CI documentation

答案 1 :(得分:1)

我不认为()会对你的特殊需求有所帮助。我猜,你最好的选择是绕过这个问题并使用包含LIKE子句的where函数:

Set CVBATButton = doc.getElementsByClassName("ui-button ui-widget ui-state-
default ui-corner-all ui-button-text-only")
  For Each btn In CVBATButton
     btn.Click
     Exit For
  Next

或者,如果你想要纯粹的ci,你必须改变你的'喜欢'一行:

$this->db->select('product_naam')->from('products')
$this->db->where("product_naam LIKE '%$keyword%'")->get();

对于%$查询,您可以使用

$this->db->like('product_naam',$keyword);

和$ query%可以使用

$this->db->like('product_naam',$keyword,'before');