#php #while-loop
#php #цикл while
Вопрос:
У меня есть следующее:
$counter = 1;
while($row= mysql_fetch_assoc($result)) {
$counter2 = $counter ;
echo($counter2 . $row['foo']);
}
Есть ли более простой способ получить 1,2,3 и т.д. Для каждого результата или это лучший способ?
Спасибо
Комментарии:
1. Почему вы просто не используете
$counter
переменную?
Ответ №1:
Вам не нужен $ counter2. $ counter — это нормально. Вы даже можете сделать это в той же строке, что и echo, если используете preincrement вместо postincrement.
$counter = 0;
while($row= mysql_fetch_assoc($result)) {
echo( $counter . $row['foo']);
}
Комментарии:
1. Почему вы получили повышение? Вы не показали ему его первую ошибку ($ counter = 2)?
2. Он постинкрементировал $counter, поэтому $ counter2 получит значение $ counter до того, как оно будет увеличено. В этой версии используется предварительное включение, поэтому $ counter получит значение 1 до того, как оно будет повторено в первый раз.
3. Спасибо. Я удаляю свой ответ, хотя я был быстрее вас, но никто не поддерживает меня.
Ответ №2:
Я знаю, что это не совсем то, о чем вы просили, но почему бы вам просто не использовать цикл for вместо while?
for ($i = 0; $row = mysql_fetch_assoc($result); $i) {
echo $i . $row['foo'];
}
Комментарии:
1. Интересное использование конструкции for. Нужно это запомнить.