如何使用特定表列值循环查看数据库
Posted
技术标签:
【中文标题】如何使用特定表列值循环查看数据库【英文标题】:How do i loop database in view with a specific table column value 【发布时间】:2019-08-13 21:32:44 【问题描述】:tb_stock:
+------------+--------------+-------------+------------+
| id_stock | name_stock | brand_id | price |
+------------------------------------------------------+
| 1 | iPhone XS | 1 | 1299 |
| 2 | galaxy s10 | 2 | 1000 |
| 3 | galaxy s10+ | 2 | 1100 |
| 4 | IWatch | 1 | 500 |
+------------------------------------------------------+
从上表中,我想在我的复选框循环中只显示一个品牌。 我已经使用 foreach 来获取价值。但我在我的复选框中获得了所有品牌。 我想要的是只显示一个品牌并循环播放。
控制器:
public function index()
$data['getStok'] = $this->M_input->getStok();
this->page->view('product', $data);
型号:
public function getStok()
$query = $this->db->get('tb_stok');
return $query->result();
查看:
<?php if(count($getStok)):?>
<?php foreach ($getStok as $a):?>
<div class="form-group">
<div class="col-sm-12">
<input type="checkbox" class="minimal"
id="<?php echo $a->name_stok;?>"
value=<?php echo $a->price;?>>
<label><?php echo $a->name_stok;?></label>
</div>
</div>
<?php endforeach;?>
<?php else :?>
<?php endif ;?>
【问题讨论】:
恐怕它不确定实际的问题是什么。您能否详细说明what i want is show only one brand and loop it.
的含义?
@dev-cyprium 在我的表“1, 2”中有 2 个brand_id,我想要的是循环我的表数据并只显示一个具有 id '1' 或 '2' 的品牌数据。所以,如果我在brand_id = 1的地方循环数据,它只会循环苹果品牌。
【参考方案1】:
如果您需要一次只显示一个品牌,您可以通过以下几种方式进行:
-
在视图
for
循环中仅过滤一个品牌。这不是最佳方式,因为您将业务逻辑移至 MVC 的视图级别。
过滤模型中的单个品牌。这是一种更好的方法,因为 Model 被认为是业务逻辑的合适位置。
Here你可以找到更多关于MVC中业务逻辑的解释
您只需对模型(和控制器)进行一些更改即可实现第二种方法
控制器:
public function index()
// assuming you get the brand ID to display from GET request
$brandId = $this->input->get('brand_id');
$data['getStok'] = $this->M_input->getStokByBrandId($brandId);
this->page->view('product', $data);
型号:
public function getStokByBrandId($brandId)
$query = $this->db->where('brand_id', $brandId)->get('tb_stok');
return $query->result();
查看:
no changes needed
【讨论】:
其实我已经解决了这个问题。与您的模型相同,我以相同的方式进行操作。感谢您的答复。我会将您的答案标记为已接受的答案。以上是关于如何使用特定表列值循环查看数据库的主要内容,如果未能解决你的问题,请参考以下文章