Codeigniter显示表1中的详细信息,如果等于表2中的特定类别

时间:2017-04-30 01:10:23

标签: php mysql codeigniter

我在我的数据库中有这个表,我们称之为如下所示的table1:

Table 1

另一张表格,我们将把它作为表2:

Table 2

我想显示表2中的内容,但只显示表2中category_id匹配id的内容。

如何编码我的控制器,模型和视图(只是相关部分)来实现这一目标?

请问我是php和codeigniter的新手。我顺便使用codeigniter 3

3 个答案:

答案 0 :(得分:0)

有不同的方法可以做到。

  1. 您可以在模型中创建两个单独的方法,以从两个表中检索数据。然后将您的数据传递给视图&使用检查数据显示正确的数据。

  2. 您可以对table2使用内部联接查询来检索此类特定数据

  3. join with table2 where table1.category_id = table2.id

    这将更容易&高效。您将获得实际数据和通过控制器&将它们传递给视图显示你想要的地方。

答案 1 :(得分:0)

在模型中你可以使用这种方法。

public function your_method_name()
 { $sql = $this->db->query('SELECT * from table1, table2 where table1.id =table2.id);
   return $sql->result();
 }
在控制器中

可以使用此方法。

 public function your_method_name(){
  $this->load->your_model; //to load your model
  $data['show'] = $this->your_model->your_method_name;
  $this->load->view('your_view',$data);
 }

你可以用foreach在你的视图中写。像这样的例子。

 <?php foreach($show as $key){
echo $key->your_column_name;
 ?>
嗯,已经完成了。我希望这能解决你的问题。

答案 2 :(得分:0)

控制器:

if (!defined('BASEPATH')) exit('No direct script access allowed');

class Example extends CI_Controller
{ 
    public function __construct() {
       parent::__construct();
       $this->load->model('Example_model');
    }

    public function index(){
      $data['result'] = $this->Example_model->get_data();
      $this->load->view('layout',$data);
    }
}

型号:

class Example_model extends CI_Model {

   function __construct() 
   {   
       parent::__construct();
       $this->load->database('default',TRUE);           
   }

   public function get_data(){
      $this->db->join('tbale1','table.category_id=table2.id');
      return $this->db->get('table2')->result();
   }
}

查看:

 <table>
      <thead>
        <tr>
          <th>ID</th>
        </tr>
      </thead>
      <tbody>
        <?php
           foreach($result as $key => $value){
        ?>
        <tr>
          <td><?php echo $value->category_id; ?></td>
        </tr>
        <?php } ?>
      </tbody>
    </table>