如何使用特定表列值循环查看数据库

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

【讨论】:

其实我已经解决了这个问题。与您的模型相同,我以相同的方式进行操作。感谢您的答复。我会将您的答案标记为已接受的答案。

以上是关于如何使用特定表列值循环查看数据库的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 根据更新其他表列值触发更新列值

如何根据联接更新 Redshift 中的表列值?

将表列值存储到变量中(SQL Server)

用于检查工作表列值的 Google 脚本

如何在laravel中使用代码索引特定数据库的表列

oracle 表列值唯一 怎么实现