【问题标题】:CodeIgniter, displaying data from a sql search in htmlCodeIgniter,在 html 中显示来自 sql 搜索的数据
【发布时间】:2016-11-16 17:53:56
【问题描述】:

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

我的模特:

<?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;
    }

我的控制器:

    class User extends CI_Controller {

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);
        }
        }

我的看法:

...
    //    <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>
...

【问题讨论】:

  • 更好地使用codeigniter内置函数“$this->db->like();”
  • 我的回答对您有帮助吗?如果有,请不要忘记将其标记为正确;)

标签: php sql codeigniter


【解决方案1】:

你需要改变这个:

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);
 }

然后在你的View:

 <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;
    }
}

【讨论】:

  • 我很高兴能帮助@NeilSimmons
  • 很抱歉打扰你,但你知道如何让它工作吗? $sql = "SELECT user_username,text,posted_at FROM Messages WHERE text LIKE '%?%';"; //新行 $query = $this->db->query($sql,$string); id 像要传递给的 $string ?应该是占位符而不是搜索 ?
  • @NeilSimmons 使用这个 $query = $this->db->select(user_username,text,posted_at)->like('text',$string);
【解决方案2】:
 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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 2020-06-16
    相关资源
    最近更新 更多