php - Codeigniter 表单提交但没有使用我的模型进行数据库查询

标签 php mysql forms codeigniter

学习 CodeIgniter 3 并尝试进行简单的搜索来查询数据库...:-)

我构建了我的 Controller 、必须查询数据库的模型以及包含结果和搜索字段的 View ...

我的表单实际上提交了,并且在表单上提交后我得到了 $_POST 数组...但似乎模型,即使被调用(或不正确!?!?!)也没有查询数据库...为什么不是吗?

Search.php Controller

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

class Search extends CI_Controller {
          public function __construct()
        {
                parent::__construct();
                $this->load->helper('url');
                $this->load->database();
                $this->load->helper('text');
                $this->load->library('pagination');
                $this->load->helper('form') ;
                //$this->load->library('MY_sphinxclient');

                $this->load->model('Search_model');
        }
    public function index()
    {

      if ($this->form_validation->run() === FALSE)
      {
        $this->load->view('search');
      }
      else
      {
      $data['search']=$this->input->get_post('search');
      $this->Search_model->get_search($data);
      $this->load->view('search');
      }
    }
      }

搜索模型.php

<?php
        class Search_model extends CI_Model {

        public function __construct()
        {
        // Call the Model constructor
        parent::__construct();
        }
        public function get_search($search_submit)
        {         
          $sql = "SELECT  ads.id AS id, 1 AS table_id, location, provLabel, text,
          R_rand, addate, adcat.name AS catname, adsubcat.name AS subname, f_value 
          FROM ads 
          JOIN search_town ON search_town.townId=ads.townId 
          JOIN search_region ON search_region.regionId=search_town.relRegionId 
          JOIN search_prov ON search_prov.provId=search_region.relProvId 
          JOIN adcat ON adcat.id=ads.catid 
          JOIN adsubcat ON adsubcat.id=ads.subcatid 
          LEFT JOIN adfields ON adfields.ad_id=ads.id 
          WHERE ads.adactive=1 AND ads.subcatid!=841 AND scam=0 AND ads.catid!=8
          AND (text LIKE '%$search_submit%' OR f_value LIKE '%$search_submit%')";
          $query = $this->db->query($sql);
          return $query->result();
          $result= $query->result();
          echo count($result);

        }

        }

我的简单 View search.php

<?php
echo 'Hello World!!!';
if(isset($_POST)){
var_dump($_POST);
}

echo form_open('search');
echo form_label('Search: ');
$data_name = array(
'name' => 'search',
'id' => 'search',
'placeholder' => 'Search'
);
echo form_input($data_name);
echo form_submit('submit', 'Submit');
echo form_close( );

if(isset($search)){
echo '<table>';
foreach($search as $rows) {
    echo '<tr>
            <td>'.$rows->id.'</td>
            <td>'.$rows->text.'</td>
        </tr>';
}
echo '</table>';
}

search_submit();

最佳答案

您的模型名为 Search_model,但您使用的是 $this->search_model

这不应该是:

$this->search_model

是:

$this->Search_model 

或者也许您应该在执行加载时指定一个名称:

$this->load->model('Search_model', 'search');
$this->search->get_search();

检查您的最新编辑:

$this->load->model('Search_model', 'search');
$this->search->get_search($seach); //Shouldn't $search be $this->input->get_post('search')

关于php - Codeigniter 表单提交但没有使用我的模型进行数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32703370/

相关文章:

javascript - 使用js验证邮件

php - CSS中奇怪的图片分辨率

php - 如何为用户发布的内容创建版本控制/历史/修订系统?

php - 我应该限制连接到数据库的数量吗?

php - 找不到对象!在此服务器上找不到请求的 URL。未访问 PHP 文件

javascript - Meteor 表单未提交

javascript - 使用 Javascript 连接 MySQL 数据库测验(初学者)

javascript - Ajax 请求 : Passing Dynamic Content to modal

javascript - 遍历我的sql结果并循环显示

mysql - 是否建议在数据库中存储堆栈跟踪信息?