我在我的数据库中有这个表,我们称之为如下所示的table1:
另一张表格,我们将把它作为表2:
我想显示表2中的内容,但只显示表2中category_id
匹配id
的内容。
如何编码我的控制器,模型和视图(只是相关部分)来实现这一目标?
请问我是php和codeigniter的新手。我顺便使用codeigniter 3
答案 0 :(得分:0)
有不同的方法可以做到。
您可以在模型中创建两个单独的方法,以从两个表中检索数据。然后将您的数据传递给视图&使用检查数据显示正确的数据。
您可以对table2使用内部联接查询来检索此类特定数据
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>