分离单个分组的WHILE循环结果

时间:2011-04-01 10:46:17

标签: php loops count if-statement while-loop

昨天我问了一个已经解决的问题,我现在可以输出WHILE循环,其中2个结果在一行上,而不是一行上的1。这是我目前的代码:

if(mysql_num_rows($result2) > 0) {
 $count=0;
 $day = 1;
 while ($row = mysql_fetch_array($result2, MYSQL_ASSOC)) {
        echo "<b>";
        if ($day=='1') { echo "Sunday - ";}
        else if ($day=='3') { echo "Monday - "; }
        else if ($day=='5') { echo "Tuesday - "; }
        else if ($day=='7') { echo "Wednesday - "; }
        else if ($day=='9') { echo "Thursday - "; }
        else if ($day=='11') { echo "Friday - "; }
        else if ($day=='13') { echo "Saturday - "; }
        else { echo "";}

        if (($row["open"] == 0) && ($row["close"] == 0)) 
        {
          echo "closed"
        } 
        else
        {
          echo "</b>" . $row["open"] . "-" . $row["close"] . " &nbsp;&nbsp;&nbsp;&nbsp; ";
          if ($count % 2 !=0 ){ echo  "<br/><br/>";}
        }
        $count++;
        $day++;
 }
} else {
        echo "Error";
}

使用此代码,当分支关闭时,它会返回两次“关闭”一词,我只需要它出现一次。这可能吗?

3 个答案:

答案 0 :(得分:0)

它可能不是最优雅的解决方案,但我可能会有一个变量$closed = false,如果分支关闭,它将设置为true。然后只测试$closed,如果它为假,则输出“关闭”。

答案 1 :(得分:0)

只需测试$day中的值的模数:

取代:

if (($row["open"] == 0) && ($row["close"] == 0)) {
    echo "closed";
}

做:

if ($row["open"] == 0 && $row["close"] == 0) {
     if ($day % 2 == 1) {
         echo "closed";
     }
}

答案 2 :(得分:0)

使用for循环:

for($i=0`;`$i`<`count(row)`;`$i++)
{

}