我已经尝试了一切来使这个工作,并且无法正确计算。
<?php
$total = count($u);
for ($i = 0; $i < $total; $i++) {
$j = 0;
$s = $database->checkUserPlayedRecent($u[$i]);
if (mysql_num_rows($s) > 0){
$j = $j + 1;
?>
<tr>
<?php echo "<td>$j</td>"; ?>
<?php echo "<td>$u[$i]</td>"; ?>
<?php echo "<td>$p[$i]</td>"; ?>
</tr>
<?
}
}
?>
我想尝试每次增加$ j,但仅限于num_rows的结果。 最初$ j是$ i + 1但是这不起作用,因为我没有显示for循环的每个结果,只有那些返回num_rows的结果。这里有什么帮助?干杯
答案 0 :(得分:3)
$total = count($u);
for ($i = 0; $i < $total; $i++)
{
$j = 0;
$ j赋值在循环内部,因此每次都设置为0。只需在循环之前将其移动到右边。
$total = count($u);
$j = 0;
for ($i = 0; $i < $total; $i++)
{
答案 1 :(得分:0)
我会改变你的内心如果:
if (mysql_num_rows($s) > 0)
{
$j = $j + 1;
?>
<tr>
<?php
echo "<td>$j</td>";
?>
<?php
echo "<td>$u[$i]</td>";
?>
<?php
echo "<td>$p[$i]</td>";
?>
</tr>
<?
} else { // if no rows returned, hasn't played recently
echo "<tr><td>Hasn't Played</td></tr>";
}
目前,您没有考虑返回的行数。此外,您可以通过一次性回显或打印整个内容来避免PHP的所有内部和外部。这是可以预测的,非常简单。