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

PHP关联三张表查询数据,数据库查询正常但前端页面显示无数据问题求助

排查PHP查询结果不显示的问题

我来帮你一步步找出问题所在——你在phpMyAdmin里能查到结果,但PHP代码却返回空,核心原因是你的PHP代码执行的查询其实没有返回任何数据,下面是几个关键排查点:

1. 先修复SQL语句的变量拼接错误

你写的查询语句存在语法问题:

$query = "SELECT members.usn, members.name, events.ename FROM members JOIN participant ON members.usn = participant.usn JOIN events ON events.eid = participant.eid WHERE members.usn='.$usn.'";

因为你用双引号包裹整个SQL字符串,里面的'.$usn.'不会被解析成变量,而是会被当成字符串的一部分。最终执行的SQL会变成:

SELECT ... WHERE members.usn='.$usn.'

这显然匹配不到任何数据,因为你的usn是7DC18CS005,不是.$usn.。

正确的写法有两种:

  • 双引号内直接使用变量:
    $query = "SELECT members.usn, members.name, events.ename FROM members JOIN participant ON members.usn = participant.usn JOIN events ON events.eid = participant.eid WHERE members.usn='$usn'";
    
  • 或者用单引号包裹字符串,再拼接变量:
    $query = 'SELECT members.usn, members.name, events.ename FROM members JOIN participant ON members.usn = participant.usn JOIN events ON events.eid = participant.eid WHERE members.usn="' . $usn . '"';
    

⚠️ 额外提醒:这种直接拼接变量的方式有SQL注入风险,建议使用参数化查询(mysqli预处理语句)更安全,示例:

$stmt = $conn->prepare("SELECT members.usn, members.name, events.ename FROM members JOIN participant ON members.usn = participant.usn JOIN events ON events.eid = participant.eid WHERE members.usn=?");
$stmt->bind_param("s", $usn);
$stmt->execute();
$result = $stmt->get_result();

2. 确认SESSION中的usn是否正确获取

你提到用SESSION保存usn,但代码里没看到相关逻辑,要确保:

  • 在使用SESSION前已经调用了session_start();(必须放在页面最顶部,任何输出之前)
  • 正确从SESSION中取出usn:$usn = $_SESSION['usn'];
  • 可以用var_dump($usn);打印变量值,确认它确实是7DC18CS005

3. 修正循环中的数组取值方式(次要但需调整)

你用$row[0]、$row[1]这种数字索引,但fetch_assoc()返回的是关联数组,键名是数据库字段名,不是数字索引。所以循环里应该改成:

while($row = $result->fetch_assoc()) {
    echo '<tr>';
    echo '<td>' . $row['usn'] . '</td>';
    echo '<td>' . $row['name'] . '</td>';
    echo '<td>' . $row['ename'] . '</td>';
    echo '</tr>';
}

如果想用数字索引,可以改用fetch_row()代替fetch_assoc()。

调试小技巧

可以在执行查询前,打印出最终的SQL语句,看看是否和你在phpMyAdmin里执行的一致:

echo $query; // 检查输出的SQL是否正确

按上面的步骤调整后,应该就能正常显示查询结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:02:27