【问题标题】:How to have two while loops in a <table>?如何在 <table> 中有两个 while 循环?
【发布时间】:2015-03-18 19:57:17
【问题描述】:
<?php
if ($result->num_rows > 0) {

echo"<fieldset style=width:300px;>
<center><table>
<table cellpadding=10;>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Room Number</th>

<th></th>

</tr>
</fieldset>";
while ($row = $result->fetch_assoc()){
echo "<tr><td>" . $row["firstname"] . 
"</td><td>" . $row["lastname"] .  
"</td>";
}
while ($row = $result2->fetch_assoc()){
echo "</td><td>" . $row["roomnumber"] . "</td></td>" . "</td><td>";
}
echo "</table></center>";
} else {
echo "0 results";
}
?>

如何将所有结果放在一个表格中?对于第一个结果,名字和姓氏分别正确显示在标题下,但是对于第二个结果,房间号没有正确显示在标题下,而是显示在其他地方。 我该如何解决这个问题?

【问题讨论】:

  • 在这种情况下,您可以对 2 个表使用连接,无需显示 2 个 while 循环。
  • 调用内部 $row 变量别的东西。
  • 或者只使用 unset($row)

标签: php html html-table


【解决方案1】:

我认为您的 SQL 查询可以通过使用以下 JOIN 来完成:

SELECT p.FirstName, p.LastName, r.RoomNumber
FROM Persons p
LEFT JOIN Rooms r ON r.PersonID=p.PersonID

使用单个查询,您将需要一个 while 来显示结果。

【讨论】:

    【解决方案2】:

    使用 jQuery:

    <?php
    $i = 1;
    
    if ($result->num_rows > 0) {
    
    echo"<fieldset style=width:300px;>
    <center><table>
    <table cellpadding=10;>
    <tr>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Room Number</th>
    
    <th></th>
    
    </tr>
    </fieldset>";
    while ($row = $result->fetch_assoc()){
    echo "<tr><td>" . $row["firstname"] . 
    "</td><td>" . $row["lastname"] .  
    "</td><td id=\"room_" . $i++ ."\"></td>";
    }
    echo "</table></center>";
    
    echo "<script>
    ";
    $i = 1;
    while ($row = $result2->fetch_assoc()){
    echo "$('#room_" . $i++ . "').html('". $row["roomnumber"] ."');";
    }
    echo "</script>
    ";
    } else {
    echo "0 results";
    }
    ?>
    

    【讨论】:

      【解决方案3】:

      Alex 是正确的,最好是获取一个结果,或者合并数组。

      但这似乎不正确。

      echo "</td><td>" . $row["roomnumber"] . "</td></td>" . "</td><td>";
      

      不应该。

      echo "<td>" . $row["roomnumber"] . "</td>" . "<td></td></tr>";
      

      还有tablecell=10;不正确应该是tablecell="10"。中心已弃用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-13
        • 2011-08-09
        • 2022-11-28
        • 2019-12-29
        • 1970-01-01
        • 2019-03-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多