而循环条件

时间:2016-01-06 07:40:06

标签: php mysql

我是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;
}

1 个答案:

答案 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;
}

然后在正确的位置格式化输出