Как исправить печать <td>пять раз вместо 2 (PHP)? - PullRequest
0 голосов
/ 02 апреля 2019

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

<tbody>
<?php
//get list of supplies
$numOfRows = 0;

$result = mysqli_query($conn,"SELECT * FROM supplies");

while ($row = mysqli_fetch_assoc($result)) {
  echo "<tr>";
  foreach ($row as $item) {
    echo '<td>' . $item . '</td>';
    $numOfRows ++;
  }
 //controls
  for ($i = 0;$i <= $numOfRows; $i++) {
    echo '<td><a><i class="fas fa-edit"></i></a><a><i class="fas fa-trash-alt">
 </i></a></td>';                                          
  }
}
echo '</tr>';
?>
</tbody>

Ответы [ 4 ]

0 голосов
/ 02 апреля 2019
 // In your code you have the 
 // "<tr>" element inside of your loop. 
 // It needs to come before your loop. Try the code below

// This is where you need <tr>
 echo "<tr>";
while ($row = mysqli_fetch_assoc($result)) {
  // this is where you had tr // echo <tr>
  foreach ($row as $item) {
    echo '<td>' . $item . '</td>';`enter code here`
    $numOfRows ++;
  }
 //controls
  for ($i = 0;$i <= $numOfRows; $i++) {
    echo '<td><a><i class="fas fa-edit"></i></a><a><i class="fas fa-trash-alt">
 </i></a></td>';                                          
  }
}
echo '</tr>';
0 голосов
/ 02 апреля 2019

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

<?php

$result = mysqli_query($conn,"SELECT * FROM supplies");

while ($row = mysqli_fetch_assoc($result)) {
  echo "<tr>";
  foreach ($row as $item) {
    echo '<td>' . $item . '</td>';
    echo '<td><a><i class="fas fa-edit"></i></a><a><i class="fas fa-trash-alt">
      </i></a></td>';
    }                                          
  }
}
echo '</tr>';
?>
0 голосов
/ 02 апреля 2019

Если вы хотите, чтобы каждый элемент в отдельной строке отображал элемент ($item) в первом столбце и ссылки на редактирование / удаление во 2-м столбце, вам понадобится только while для просмотра каждой найденной строки.

while ($row = mysqli_fetch_assoc($result)) {
  echo "<tr>";
  echo '<td>' . $item . '</td>';
  echo '<td>
        <a><i class="fas fa-edit"></i></a>
        <a><i class="fas fa-trash-alt"></i></a>
        </td>';
  echo '</tr>';
}
0 голосов
/ 02 апреля 2019

проверьте ваш код, во-вторых, для этого используется переменная numOfRows, которая вообще не верна, вы повторяете столько строк, сколько в вашей таблице, а не только 5 раз, если у вас 100 записей, вы увидите, что TD напечатан 100 раз Кстати, вы можете поместить эти 2 кнопки в один TD, так что вам вообще не понадобится вторая

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...