【问题标题】:I have a problem printing within a foreach loop我在 foreach 循环中打印时遇到问题
【发布时间】:2022-01-21 17:13:22
【问题描述】:

<?php
require '../koneksi.php';

$kategori=mysqli_query($conn, "SELECT * FROM kategori");

?>
<li class="mb-3">
            <div class="col-12">
            <label for="kategori" class="form-label">Kategori surat</label>
            <select class="form-select" name="kategori" id="kategori" required>
                <option value="" selected="">Pilih kategori surat</option>
                <?php
                    foreach ($kategori as $key => $value) {                 
                ?>
                <option value="<?php echo $value['id']; ?>"><?php echo $value['kategori']; ?></option>
                <?php
                    }
                ?>
            </select>
            <script type="text/javascript" src="../JQuerydashboard.js"></script>
            </div> <!-- akhir dari kategori -->
        </li>

我有一个表名为“分类”的数据库。 “类别”的 id 为 1-5。我想从 1-3 打印那个 id。怎么办?

【问题讨论】:

  • 看起来问题是关于 PHP,而不是 JavaScript。另外,如何从数据库中获取数据?
  • 所以问题不在于打印,而在于如何只打印部分记录?仅从数据库中获取您想要使用的那些不是更容易吗?
  • SELECT * FROM kategori ORDER BY ID LIMIT 3
  • @Phil 谢谢你

标签: php loops foreach


【解决方案1】:
<li class="mb-3">
            <div class="col-12">
            <label for="kategori" class="form-label">Kategori surat</label>
            <select class="form-select" name="kategori" id="kategori" required>
                <option value="" selected="">Pilih kategori surat</option>
                <?php
                    $counter = 0; 
                    foreach ($kategori as $key => $value) { 
                    if($counter > 3){
                       break;
                    }
                ?>
                <option value="<?php echo $value['id']; ?>"><?php echo $value['kategori']; ?></option>
                <?php
                    $counter++;
                    }
                ?>
            </select>
            <script type="text/javascript" src="../JQuerydashboard.js"></script>
            </div> <!-- akhir dari kategori -->
        </li>

只需要创建一个计数器,每次计数器增加时,它都会代表一个 id,如果它大于 3,你就结束 foreach 循环。

【讨论】:

  • 感谢这个答案帮助我
  • 查询没有使用ORDER BY,也就是说结果的顺序没有保证。因此,仅计算回显的结果并不意味着 ID 1-3 的结果已被回显。
  • 不限制结果集使得查询效率非常低,这点本来可以指出来的。
猜你喜欢
  • 2016-08-08
  • 2013-12-10
  • 2016-04-23
  • 2021-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
相关资源
最近更新 更多