В то время как цикл отображает только первую строку из базы данных - PullRequest
0 голосов
/ 09 мая 2019

Я знаю, что это супер основной вопрос, но я не могу найти ответ весь день.Я пытаюсь отобразить все мои строки базы данных в таблице, и мой цикл 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 голосов
/ 09 мая 2019

Ваш пример кода выглядит чистым на первый взгляд, но это все еще напоминает мне о двух различных возможностях:

  • Ваша таблица содержит только одну строку. Это глупо, но это должно быть проверено в первую очередь. Ну, я предположил, что ты сделал;
  • Посторонняя точка с запятой ";" забыто после while() условия:
    while($res=fetch(…));
    {
        display something…
    }

В этом случае цикл будет повторяться до конца вашего набора данных, затем будет введен блок в фигурных скобках (предполагается, что он является сиротой), отображающий то, что осталось в переменных. Но в этом случае вы должны получить последнюю строку вашего запроса, а не первую.

0 голосов
/ 09 мая 2019
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";
  $result = sqlsrv_query($conn, $sql);

 while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
            $id = $row['id'];
          $Home = $row['Home'];
          $Away = $row['Away'];     
        $result = $row['result'];
       $season = $row['season'];
       $notes = $row['notes'];
     $home_goals= $row['home_goals'];
     $away_goals= $row['away_goals'];
     $GoalSum = $home_goals+$away_goals;



 echo $output.="<tr>
                 <td>$id</td>
                 <td>$Home</td>
                 <td>$Away</td>
                 <td>$result</td>
                 <td>$season</td>
                 <td>$notes</td>
                 <td>$GoalSum</td>
                </tr>";
 }
  echo "</table>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...