学习 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/