我在PHP中使用“foreach”循环来从我的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>';
}
?>
$ cards定义了想要显示的行数,但我想计算未显示的行数。
tl; dr 使用foreach创建表,想要计算单个表中的行
答案 0 :(得分:2)
在你的foreach循环之上,定义一个计数器。
$ count = 0
然后在你的foreach循环中:
$ count = $ count + 1
在你的foreach循环之后:
Echo $ count
示例:
<?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;
}
?>
答案 1 :(得分:0)
我认为这会有所帮助。
<?php
$count = 0;
foreach( $names as $name){
$count = $count + 1;
echo "<td>".$count. "</td>
"<td>".$name. "</td>";
}
?>