我是php中的总菜鸟,当涉及到while循环条件时。请耐心等待。首先,我有两张桌子。我计划只显示右表中的特定行(子表),但它以奇怪的方式显示左(父)和右表(子)的所有行,因为如果我在会话中回显结果,它只会显示右表的第一行。但是在我做了一些细微的修改之后,我能够得到结果,但我得到了左右桌子的所有结果。如果我上面的问题听起来很愚蠢或者没有话题,我首先道歉。我只是想不出一个合适的问题。任何帮助将非常感激。 TQ
以下是摘录脚本;
//从table-users和table-useradvert调用记录,加入
$query = "SELECT u.*, ua.* FROM users u INNER JOIN useradvert ua ON u.users.id = ua.useradvert.id";
$stmt = $conn->prepare($query);
$stmt->execute();
$res = $stmt->get_result();
$row2 = $res->fetch_array();
$_SESSION['name2'] = $row2['name2'];
$_SESSION['color2'] = $row2['color2'];
$_SESSION['hobby2'] = $row2['hobby2'];
$_SESSION['radiobtn'] = $row2['radiobtn'];
$_SESSION['kupon'] = $row2['kupon'];
$_SESSION['image'] = $row2['image'];
$_SESSION['image2'] = $row2['image2'];
继续提取;
$output = array();
while($row2 = $res->fetch_array()) {
$output[] = $row2;
}
答案 0 :(得分:1)
SQL:
SELECT u.*, ua.* FROM users u INNER JOIN useradvert ua ON u.id = ua.id
关于php部分的建议
您需要在循环中输出它们或以$_SESSION
数组中的不同方式存储它们,否则您将通过将它们反复设置到$_SESSION
数组中来覆盖它们。
修改强>
$output = [];
while($row = $res->fetch_array()) {
$output[] = $row;
}
然后在正确的位置格式化输出