首页 文章

PHP计算来自foreach循环的行

提问于
浏览
5

我在PHP中使用“foreach”循环来从我的MySQL数据创建表

我想要实现的是计算循环返回的行数

循环为每个“机器”创建新表,并将“ Contract ”作为新行填充,但每当我尝试计算行时,它将从所有表中返回计数,而不是仅返回单个表 .

这是我的代码:

<?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>';

}

?>

$ cards定义了想要显示的行数,但我想计算未显示的行数 .

tl;dr 用foreach创建表,想要从单个表中计算行数

2 回答

  • 2

    在你的foreach循环之上,定义一个计数器 .

    $ count = 0

    然后在你的foreach循环中:

    $ count = $ count 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;
    }
    ?>
    
  • 0

    我认为这会有所帮助 .

    <?php
    
    $count = 0;
    
    foreach( $names as $name){
    
    $count = $count + 1;
    
    echo  "<td>".$count. "</td>
    
          "<td>".$name. "</td>";
    }
    
    ?>
    

相关问题