Разделение результатов одного цикла WHILE - PullRequest
0 голосов
/ 01 апреля 2011

Вчера я задал вопрос, который был решен, и теперь я могу выводить циклы 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 голосов
/ 01 апреля 2011

Просто протестируйте по модулю значение в пределах $day:

вместо:

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

до:

if ($row["open"] == 0 && $row["close"] == 0) {
     if ($day % 2 == 1) {
         echo "closed";
     }
}
0 голосов
/ 01 апреля 2011

Используйте петлю for:

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

}
0 голосов
/ 01 апреля 2011

Возможно, это не самое элегантное решение, но у меня, вероятно, будет переменная $closed = false, которая устанавливается в значение true, если ветвь закрыта. Затем просто проверьте $closed, если оно ложно, вывод «закрыт».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...