0

下面的代码创建 html 表格数据。

第 1 行是正确的,并返回带有 $row['LNAME'] 的 column1,然后返回带有所有 $row1['NAME'] 结果的 column2(有四个)。

第 2 行及以后仅回显 column1 和 column2 中的空单元格。

while ($row = $sql->fetch_assoc()){
 echo "<tr>";
 echo "<td>";
 echo $row['LNAME'];
 echo "</td>";
 echo "<td>";
 while($row1 = $sql1->fetch_assoc()){
    echo $row1['NAME'] . "<br>";
    }
echo "</td>";
echo "</tr>";
 }

似乎在内循环完成后,它在外循环的未来迭代中评估为假,我希望它评估为真。

我应该改变什么,以使内部循环在外部循环之前不会评估为假?

4

2 回答 2

0

您将需要使用mysql_data_seek($rs, 0)在第一行重置您的结果指针。mysql这是在隐藏在您的对象后面的假设下。分别mysqli使用mysqli_data_seek_

于 2013-07-31T04:16:21.923 回答
0

这是因为你在 $sql1 的末尾。您可以再次寻找它的开头,但我的偏好是将数据从数据库和迭代中提取出来,所以我会这样写(使用您的代码作为起点):

$lname = array();
while($row = $sql->fetch_assoc()){
    $lname[] = $row;
}

$name = array();
while($row1 = $sql1->fetch_assoc()){
    $name[] = $row1;
}


foreach($lname as $lvalue) {
    echo "<tr>";
    echo "<td>";
    echo $lvalue;
    echo "</td>";
    echo "<td>";

    foreach($name as $value) {
        echo $value . "<br>";
    }

    echo "</td>";
    echo "</tr>";
}
于 2013-07-31T04:17:46.180 回答