PHP数据库数据可通过var_dump获取但无法在HTML表格显示求助
问题分析与解决方案
从你的代码来看,核心问题非常明确:你成功从数据库获取到了数据(var_dump能正常打印就是证明),但拼接好的HTML表格行字符串没有输出到页面上。
错误原因
你写的这一行代码只是创建了一个包含表格行的字符串,但没有通过echo或print语句把它发送给浏览器渲染:
'<tr> <td> ' . $row['ord_id'].'</td> <td> '.$row['ord_total'].'</td> <td> '.$row['ord_date'].'</td> <td> '.$row['ord_qty'].'</td> <td> '.$row['card_id'].'</td> <td> '.$row['card_price'].'</td> <td> '.$row['card_field1'].'</td> <td> '.$row['card_field2'].'</td> <td> '.$row['card_field3'].'</td> <td> '.$row['card_field4'].'</td> <td> '.$row['card_field5'].'</td> </tr>';
这就好比你写了一段文字但没念出来,浏览器自然接收不到这部分内容。
修复后的代码
只需要给这段HTML字符串加上echo即可,修改后的完整代码如下:
<?php $result = mysqli_query($con,$sql); while($row = mysqli_fetch_assoc($result)){ var_dump($row); // 加上echo输出表格行 echo '<tr> <td> ' . $row['ord_id'].'</td> <td> '.$row['ord_total'].'</td> <td> '.$row['ord_date'].'</td> <td> '.$row['ord_qty'].'</td> <td> '.$row['card_id'].'</td> <td> '.$row['card_price'].'</td> <td> '.$row['card_field1'].'</td> <td> '.$row['card_field2'].'</td> <td> '.$row['card_field3'].'</td> <td> '.$row['card_field4'].'</td> <td> '.$row['card_field5'].'</td> </tr>'; var_dump($row); } ?>
额外优化建议
为了让代码更易读、更不容易出错,推荐你用PHP嵌入HTML的写法,把HTML结构和PHP逻辑分开:
<?php $result = mysqli_query($con,$sql); while($row = mysqli_fetch_assoc($result)){ var_dump($row); ?> <tr> <td><?php echo $row['ord_id']; ?></td> <td><?php echo $row['ord_total']; ?></td> <td><?php echo $row['ord_date']; ?></td> <td><?php echo $row['ord_qty']; ?></td> <td><?php echo $row['card_id']; ?></td> <td><?php echo $row['card_price']; ?></td> <td><?php echo $row['card_field1']; ?></td> <td><?php echo $row['card_field2']; ?></td> <td><?php echo $row['card_field3']; ?></td> <td><?php echo $row['card_field4']; ?></td> <td><?php echo $row['card_field5']; ?></td> </tr> <?php var_dump($row); } ?>
另外,如果这些数据包含用户输入的内容,记得用htmlspecialchars()做转义,防止XSS攻击:
<td><?php echo htmlspecialchars($row['ord_id'], ENT_QUOTES); ?></td>
内容的提问来源于stack exchange,提问作者rabada123
相关产品推荐
相关产品推荐

