PHP Loop, который не зацикливается - PullRequest
0 голосов
/ 09 августа 2011

Я пишу цикл, который строит таблицу. С mysql_num_row я получаю, сколько человек (18), и я хочу таблицы с максимум 6 людьми (так: $Peoples = (mysql_num_row($SQL_statement) /6;).

В цикле я увеличиваю $ Count: $Count = $Count + 1;

Когда я пишу:

Do{
  [code]
} while($Count == $Peoples);

Условие не работает: после 1 цикла оно выходит из цикла. Я напечатал $ Count, который равен 1, а $ Peoples - 3.

Есть что-нибудь с этим делать? Спасибо!

Ответы [ 4 ]

3 голосов
/ 09 августа 2011

потому что 1! = 3. Вам нужно время ($ count! = $ Peoples)

Или еще лучше, пока ($ count <$oples) </p>

1 голос
/ 09 августа 2011

Вы хотите использовать

Do{
  [code]
} while($Count != $Peoples);

(обратите внимание на проверку неравенства).

Условие не работает: после 1 цикла оно выходит из цикла. я напечатано $ Count, который равен 1, а $ Peoples - 3.

== - оператор равенства - он проверяет, равны ли обе стороны.

Ваш PHP-код работает правильно - вы говорите, что код должен выйти, когда count отличается от people. $Count wich is 1, and $Peoples is 3. соответствует этим критериям. Код, который я разместил выше, будет продолжать цикл, пока count равен , а не равен people.

1 голос
/ 09 августа 2011

== - оператор сравнения равно . Ваш счет никогда не будет изначально равен количеству людей, поэтому ваш цикл не зацикливается (циклы do-while всегда выполняют исходный код в разделе do независимо от того, выполняется условие цикла или нет).

Что вам, вероятно, понадобится, это использовать оператор <, поскольку вы увеличиваете количество в течение всего цикла. </p>

1 голос
/ 09 августа 2011

Может быть, вы хотите do { [code] } while($Count < $Peoples) или do { [code] } while($Count != $Peoples). Сейчас ваша программа делает добавление 1 к $Count и затем проверяет состояние цикла. Поскольку $Count != $Peoples, цикл завершается.

...