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, хотите подсчитать строки из одной таблицы

Author: B0oMi, 2014-08-18

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;
}
?>
 2
Author: Nick Prozee, 2014-08-17 23:21:05

Я думаю, что это поможет.

<?php

$count = 0;

foreach( $names as $name){

$count = $count + 1;

echo  "<td>".$count. "</td>

      "<td>".$name. "</td>";
}

?>
 0
Author: Oteng Kwame, 2017-04-12 15:21:40