You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取查询结果集行号并赋值给HTML元素ID属性

解决方法

你只需要在循环外定义一个计数器变量,每次循环累加后输出到预留位置即可,具体修改如下:

第一步:添加计数器初始化代码

在while循环启动前插入行号计数器定义:

$lineNum = 1; // 行号从1开始计数,你也可以按需改为从0开始
while($row = mysqli_fetch_row($res2)) {

第二步:补全ID的输出代码

把所有预留的<?php ?>位置替换为输出计数器的代码:

id="imgDG<?php echo $lineNum; ?>"
<!-- 其他ID同理替换即可 -->

第三步:循环末尾累加计数器

在循环块结束的<?php }前添加计数器自增逻辑:

<?php
            $lineNum++;
         }
      ?>

完整修改后的渲染代码参考

<body>
      <?php
         $lineNum = 1; // 初始化行号计数器
         while($row = mysqli_fetch_row($res2)) {
            // 调试用的print_r可以保留,上线后建议删除
            // print_r($row);
            ?>
               <div class="item">
                  <img class="trj_img_cls" src="RSC/COMING_SOON.jpg" alt="" id="imgDG<?php echo $lineNum; ?>">
                  <div class="texto_trj">
                     <div class="nombre_producto">
                        <h2 id="ttlDG<?php echo $lineNum; ?>"><?php echo $row[0]; // 对应查询的NAME字段 ?></h2>
                     </div>
                     <div class="precio_producto">
                        <i class="icon-dollar"></i>
                        <label id="prDG<?php echo $lineNum; ?>"><?php echo $row[1]; // 对应查询的PRICE字段 ?></label>
                     </div>
                     <div class="caracteristicas">
                        <ul id="caractDG<?php echo $lineNum; ?>"></ul>
                     </div>
                  </div>
               </div>
            <?php
            $lineNum++; // 行号自增
         }
      ?>
</body>

补充建议

如果需要ID更稳定(不受查询排序、筛选条件变化影响),可以修改SQL语句把商品主键ID也查出来:

$res2 = mysqli_query($con,"SELECT ID, NAME, PRICE FROM product WHERE AVAILABLE = 1 AND ID_CATEGORY = 17");

之后直接输出数据库主键作为ID后缀即可:<?php echo $row[0]; ?>,比循环计数器更可靠。

内容的提问来源于stack exchange,提问作者Santiago Barreiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 13:09:03