我正在嘗試使用 codeigniter 中的 2 個表顯示資料,我有一個包含一些產品的產品表和另一個包含產品 ID 的表,我在控制器中執行了以下操作:
public function index(){
$selectfeatured = $this->product->selectfeatured();
foreach($selectfeatured as $val){
$id=$val->pid;
$data['featured'] = $this->product->featured($id);
}
$this->load->view('home', $data);
}
在我的模型中,
function selectfeatured()
{
$this->db->select('*');
$this->db->from('featured');
$this->db->order_by("id", "desc");
$this->db->limit(4);
$query = $this->db->get();
$result = $query->result();
return $result;
}
function featured($pid)
{
$this->db->select('*');
$this->db->where("id", $pid);
$this->db->from('product');
$query = $this->db->get();
$result = $query->result();
return $result;
}
即使我在兩個表中有多個產品,此代碼也只顯示一個產品,誰能告訴我這里有什么問題
uj5u.com熱心網友回復:
將你的$data['feature']作為一個陣列:
public function index()
{
$selectfeatured = $this->product->selectfeatured();
$data['featured'] = array();
foreach ($selectfeatured as $val) {
$id = $val->pid;
$data['featured'][] = $this->product->featured($id); // add new item
}
$this->load->view('home', $data);
}
并確保featured在視圖中以正確的方式顯示陣列,如下所示:
<?php foreach ($featured as $feature) : ?>
<?php foreach ($feature as $product) : ?>
<div class="item"><img style="height:250px" src="<?php echo base_url(); ?>admin/uploads/products/<?php echo $product->pimage; ?>" alt="" class="img-responsive"></div>
</div>
<?php endforeach; ?>
<?php endforeach; ?>
uj5u.com熱心網友回復:
變數 $data['featured'] 在一個回圈內并且在每次迭代中獲得新值,并在每次迭代時被覆寫,這就是為什么你只得到一個產品,你需要使用 array_push 或 ' =' 等附加其他產品。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315046.html
標籤:php mysql 数据库 代码点火器 codeigniter-3
