循环计数

时间:2010-07-16 23:08:53

标签: php

我已经尝试了一切来使这个工作,并且无法正确计算。

<?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的结果。这里有什么帮助?干杯

2 个答案:

答案 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的所有内部和外部。这是可以预测的,非常简单。