PHP подсчитывает строки из цикла foreach
Я использую цикл "foreach" в PHP для создания таблиц из моих данных MySQL
Чего я пытаюсь добиться, так это подсчитать количество строк, возвращаемых циклом
Цикл создает новые таблицы для каждой "машины" и заполняет "контракты" в виде новых строк, но всякий раз, когда я пытаюсь подсчитать строки, он возвращает количество из всех таблиц вместе, а не только из одной.
Вот мой код:
<?php
foreach ($this->datatitle as $head) {
$cards = 1;
echo '<table id="cards" class="cards">';
echo '<tr>';
foreach ($this->datacount as $datacount) {
echo '<td>' . $head->machine_text . ' ' . $head->machine_name . ' [' . $datacount->count . ']</td>';
}
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<ul id="sortable" class="connectedSortable">';
foreach ($this->data as $body) {
if ($head->machine_text == $body->machine_text) {
echo '<li class="ui-state-default">Auftrag: ' . $body->aufnr;
echo '<br>' . $body->matnr . ' ' . $body->matxt;
echo '<br>Menge ' . $body->gamng;
echo '<br><br>';
echo 'Start: ' . $body->gstrp;
echo '<br>Ende: ' . $body->ssavd . '</li>';
if ($cards++ == 10) {
break;
}
} else {
}
}
echo '</td>';
echo '</tr>';
echo '</table>';
}
?>
$карты определяют количество строк, которые нужно отобразить, но я хочу посчитать строки, которые также не отображаются.
Tl;dr создайте таблицы с помощью foreach, хотите подсчитать строки из одной таблицы
2 answers
Над вашим циклом foreach определите счетчик.
$count = 0
Затем в вашем цикле foreach:
$количество = $количество + 1
После вашего цикла foreach:
Эхо $количество
Пример:
<?php
foreach ($this->datatitle as $head) {
$count = 0;
$cards = 1;
echo '<table id="cards" class="cards">';
echo '<tr>';
foreach ($this->datacount as $datacount) {
$count = $count + 1;
echo '<td>' . $head->machine_text . ' ' . $head->machine_name . ' [' . $datacount->count . ']</td>';
}
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<ul id="sortable" class="connectedSortable">';
foreach ($this->data as $body) {
if ($head->machine_text == $body->machine_text) {
echo '<li class="ui-state-default">Auftrag: ' . $body->aufnr;
echo '<br>' . $body->matnr . ' ' . $body->matxt;
echo '<br>Menge ' . $body->gamng;
echo '<br><br>';
echo 'Start: ' . $body->gstrp;
echo '<br>Ende: ' . $body->ssavd . '</li>';
if ($cards++ == 10) {
break;
}
} else {
}
}
echo '</td>';
echo '</tr>';
echo '</table>';
echo $count;
}
?>
Я думаю, что это поможет.
<?php
$count = 0;
foreach( $names as $name){
$count = $count + 1;
echo "<td>".$count. "</td>
"<td>".$name. "</td>";
}
?>