PHP操作MySQL如何查询获取数据表中的最后一条最新记录
问题根源
你现在的代码存在两个问题导致重复生成表格:
- SQL查询会取出表中所有存储的数据
- 整个表格的HTML代码写在了
while循环内部,每遍历一条数据就会完整渲染一次表格
修改方案
- 调整SQL语句,仅查询最新的1条数据。通常表内会有自增主键
id或者数据插入时间字段create_time,按该字段倒序排列后取第一条即可,以下示例用自增id作为排序依据:
把原有查询语句$sql="SELECT * from roberto";
修改为$sql="SELECT * from roberto ORDER BY id DESC LIMIT 1"; - 删除外层while循环,直接读取单条查询结果即可,不需要循环遍历。
修改后完整代码
</div> <?php // 仅查询最新1条数据 $sql="SELECT * from roberto ORDER BY id DESC LIMIT 1"; $result=mysqli_query($conexion,$sql); // 直接读取单条数据,无需循环 $mostrar=mysqli_fetch_array($result); ?> <table class="table is-striped is-narrow is-hoverable is-fullwidth"> <thead> <tr> <th>Tipo</th> <th>Niveles</th> <th>Estado</th> </tr> </thead> <tbody> <tr> <th>pH Sensor <spab></th> <td><p>Nivel de pH: <strong><span id="PHvalue"></span><?php echo $mostrar['nivelph']; ?></strong></p> </td> <td>Funcionando</td> </tbody> <tbody> <tr> <th>Caudalímetro</th> <td><p><strong><?php echo $mostrar['caudal']; ?>10L/min</strong></p> </td> <td>Funcionando</td> </tbody> <tbody> <tr> <th>Bomba subir pH ↑</th> <td><span><?php echo $mostrar['nivelph'] ?>pH</span> </td> <td>Subiendo el pH↑</td> </tbody> <tbody> <tr> <th>Bomba bajar pH ↓</th> <td><span><?php echo $mostrar['nivelph'] ?>pH</span> </td> <td>Bajando el pH↓</td> </tbody> <tr> <th>Nutrientes</th> <td><span>1mL/24horas</span> </td> <td>Activando bomba</td> </tbody> </table> </section>
注:原有代码中
""" + str(ph) + """为Python语法,上述代码已替换为PHP读取数据库pH值的输出逻辑,你可以根据实际需求调整。
内容的提问来源于stack exchange,提问作者Octavio Bottari
相关产品推荐
相关产品推荐

