Базовое количество строк HTML-таблицы по количеству результатов SQL

#php #html #mysql

#php #HTML #mysql

Вопрос:

Я хочу создать таблицу на основе результата SQL-запроса в PHP. Я знаю, что если бы мой запрос вернул 2 результата, я мог бы использовать

 echo '<table>
      <tr>
         <th>User</th>
         <th>Answer</th>
      </tr>
      <tr>
         <td>$row[0]['username']</td>
         <td>$row[0]['answer']</td>
      </tr>
      <tr>
         <td>$row[1]['username']</td>
         <td>$row[1]['answer']</td>
      </tr>
  

Но как мне это сделать, если я не знаю, сколько результатов будет возвращено

Редактировать:

Я использовал цикл, как рекомендовано, но результаты отображаются под таблицей, а не внутри. Внутри находятся только заголовки таблиц. Есть идеи?

 echo '<table class="collabtable">
              <tr>
              <th>User</th>
              <th>Answer</th>
              </tr>';
        foreach($rows as $row){
            if (isset($row['collabans'])){
                echo '<tr>
                        <td>'.$row['username'].'</td>
                        <td>'.$row['collabans'].'</td>
                      </tr>';
            }
        echo '</table>';
        }
    }
  

Комментарии:

1. используйте цикл…..

Ответ №1:

Вы можете использовать цикл. Смотрите ниже.

     <table>
        <tr>
            <th>User</th>
            <th>Answer</th>
        </tr>
        <?php foreach ($rows as $row) { 
          if (isset($row['collabans'])){ ?>
            <tr>
                <td><?php echo $row['username']; ?></td>
                <td><?php echo $row['answer']; ?></td>
            </tr>
        <?php } 
        } ?>
    </table>
  

Комментарии:

1. Спасибо, это действительно помогает, но я все еще застрял на синтаксисе. Я отредактировал свой ответ, чтобы показать, где я сейчас нахожусь

2. Закройте таблицу после завершения цикла.

Ответ №2:

Вам нужно просмотреть все результаты вашего запроса, как показано ниже:

 if ($result->num_rows() > 0) {
    while($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
        <tr>
             <td>$row['username']</td>
             <td>$row['answer']</td>
        </tr>      
    }
}
  

Надеюсь, это поможет вам.

Комментарии:

1. Спасибо, это действительно помогает, но я все еще застрял на синтаксисе. Я отредактировал свой ответ, чтобы показать, где я сейчас нахожусь

2. echo ‘</table>’; должно быть после второй закрывающей скобки