Php CodeIgniter,在html中显示来自sql搜索的数据

Php CodeIgniter,在html中显示来自sql搜索的数据,php,sql,codeigniter,Php,Sql,Codeigniter,我刚开始使用CodeIgniter,无法在视图中显示数据。 据我(非常有限)的理解,应该在视图中显示表的第一、第二和第三列,但它返回未定义的变量:first。 任何帮助都将不胜感激 我的模型: <?php class Model_model extends CI_model{ public function __construct() { parent::__construct(); $this->load->database();

我刚开始使用CodeIgniter,无法在视图中显示数据。 据我(非常有限)的理解,应该在视图中显示表的第一、第二和第三列,但它返回未定义的变量:first。 任何帮助都将不胜感激

我的模型:

<?php class Model_model extends CI_model{

    public function __construct()   {
        parent::__construct();
        $this->load->database();
    }

public function getData($string){
    $sql = "SELECT first,second,third FROM Table WHERE first LIKE '%?%';"; 
    $query = $this->db->query($sql,$string);
    if ($query->num_rows() > 0) {
        return $query;
    }
我的看法是:

...
    //    <table>
                <tr><td>Poster:</td><td><?php echo $first; ?></td></tr>
                <tr><td>Message:</td><td><?php echo $second; ?></td></tr>
                <tr><td>Time posted:</td><td><?php echo $thrid; ?></td></tr>
    //      </table>
...
。。。
//    
海报:
信息:
张贴时间:
//      
...

您需要更改以下内容:

public function view($string) {
        $this->load->model('Model_model');
        $result = $this->Model_model-> getData($string);
        echo $result->num_rows();  //returns correct number.
        $this->load->view('view_display', $result);
}
为此:

public function view($string) {
        $this->load->model('Model_model');
        $result = $this->Model_model-> getData($string);
        $data["myModel"] = $result;
        $this->load->view('view_display', $data);
 }
然后在
视图中

 <tr><td>Poster:</td><td><?php echo $myModel->first; ?></td></tr>
 <tr><td>Message:</td><td><?php echo $myModel->second; ?></td></tr>
 <tr><td>Time posted:</td><td><?php echo $myModel->third; ?></td></tr>

我很高兴帮助@NeilSimmons很抱歉打扰你,但是你知道如何让它工作吗$sql=“选择用户\用户名,文本,从文本为“%”?%;“的邮件中发布”//新行$query=$this->db->query($sql,$string);我想将$string传递给?它应该是一个占位符,而不是搜索?@NeilSimmons使用这个$query=$this->db->select(user\u username,text,posted\u at)->like('text',$string);最好使用codeigniter内置函数“$this->db->like();”我的答案对您有帮助吗?如果有,请不要忘记将其标记为正确;)
 <tr><td>Poster:</td><td><?php echo $myModel->first; ?></td></tr>
 <tr><td>Message:</td><td><?php echo $myModel->second; ?></td></tr>
 <tr><td>Time posted:</td><td><?php echo $myModel->third; ?></td></tr>
public function getData($string){
    $this->db->select("first,second,third");
    $this->db->from("Table");
    $this->db->like("first", $string);

    $query = $this->db->get();
    if ($query->num_rows() > 0) {
       return $query;
    }
}
 public function search(){  // Controller
    $keyword = $this->input->get('keyword'); // You can use "post" as well. keyword is the input field name.
    $data['results'] = $this->your_model->function($keyword);
    $this->load->view('your_view', $data); }

public function search($keyword){ // Model
    $this->db->like('keyword', $keyword);
    $query = $this->db->get('table_name');
    return $query->result();
}