#javascript #php #css #html
#javascript #php #css #HTML
Вопрос:
Мне нужна помощь с этим циклом for. Я хочу, чтобы он печатал элементы управления на стороне строки для каждого элемента в списке, но его список 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>
Комментарии:
1. Якоря, которые вы
PHP
генерируете, недействительны.2. О да. Они пока ничего не делают.
Ответ №1:
просмотрите свой код, во-вторых, используется переменная numOfRows, которая вообще не подходит, вы повторяете столько строк, сколько есть в вашей таблице, не только 5 раз, если у вас есть 100 записей, то вы увидите, что TD печатается 100 раз, кстати, вы можете поместить эти 2 кнопки в один TD, тогда вам вообще не понадобится вторая
Ответ №2:
Я не думаю, что для элементов управления требуется другой цикл. Попробуйте это, я надеюсь, это поможет вам. Спасибо
<?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>';
?>
Ответ №3:
Если вы хотите, чтобы каждый элемент в отдельной строке отображал элемент ( $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>';
}
Ответ №4:
// 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>';