While循环仅显示数据库的第一行

时间:2019-05-09 17:39:36

标签: php html mysql sql

我知道这是一个非常基本的问题,但是我整天都找不到答案。 我试图在表中显示所有数据库行,而while循环仅显示第一行。

我试图将while循环的条件更改为“ mysqli_fetch_array”,然后甚至没有出现第一行。

echo "<table>";
    echo "<tr>
        <th>Match_Id</th>
        <th>Home_Team</th> 
        <th>Away_Team</th>
        <th>Result</th>
        <th>season</th> 
        <th>notes</th>
        <th>Goals_Sum</th>
      </tr> ";


     $sql = "SELECT * FROM PremierLeague";
   `enter code here`  $result = sqlsrv_query($conn, $sql);

 while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
     echo "<tr>";
     $id = $row['id'];
     echo "<td>$id</td>";
     $Home = $row['Home'];
     echo "<td>$Home</td>";
     $Away = $row['Away'];
     echo "<td>$Away</td>";
     $result = $row['result'];
     echo "<td>$result</td>";
     $season = $row['season'];
     echo "<td>$season</td>";
     $notes = $row['notes'];
     echo "<td>$notes</td>";
     $home_goals= $row['home_goals'];
     $away_goals= $row['away_goals'];
     $GoalSum = $home_goals+$away_goals;
     echo "<td>$GoalSum</td>";
     echo "</tr>";
 }
  echo "</table>";

预期结果:具有数据库中所有行的表。 实际结果:仅数据库的第一行

2 个答案:

答案 0 :(得分:0)

letter-spacing

答案 1 :(得分:0)

您的代码示例乍一看看上去很干净,但这仍然让我想起了两种不同的可能性:

  • 您的表仅包含一行。这很傻,但是必须首先检查。好吧,我以为你做到了;
  • 多余的分号“;”在L(:,:,1)后被遗忘了:
while()

在这种情况下,循环将迭代直到数据集的末尾,然后将输入大括号(假定为孤立)中的块,显示变量中剩余的内容。但是在这种情况下,您应该获得查询的最后行,而不是第一行。