#php
#php
Вопрос:
while ($row = mysqli_fetch_assoc($result)) {
$price6 = substr("{$row['price']}",0,15);
}
например, в этом коде, если он собирается распечатать пять результатов, я хочу что-то сделать сразу после распечатки третьего результата. Пожалуйста, кто-нибудь, помогите мне.
Комментарии:
1. Вы можете добавить счетчик, чтобы отслеживать строку, в которой вы находитесь, и проверять, когда остаток от вашего счетчика, деленный на 3, равен 0:
if ($counter % 3 === 0) {}
. Обратите внимание, что это будет что-то делать после каждой третьей строки.2. А что, если это приведет к получению 10 результатов?
3. Кстати, заголовок и текст вашего вопроса, похоже, не совпадают: что именно вы хотите сделать?
Ответ №1:
Вы можете либо иметь переменную $ i = 0 перед циклом и считать ее в цикле, а после, скажем, $ i == 3, вы можете написать break и выйти из цикла, либо вы можете написать цикл for и сделать то же самое: Пример 1:
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
$price6 = substr("{$row['price']}",0,15);
$i ;
if ($i == 3) break;
}
Пример 2:
$row = mysqli_fetch_assoc($result);
for ($i = 0; $i < count($row); $i ) {
// do something
if ($i == 3) break;
}
Я не тестировал это на вашем примере, но просто чтобы дать вам представление.
Ответ №2:
Другие предложения здесь хороши, вот другой способ сделать это:
Замените ваш цикл while следующим:
$rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
Теперь вы можете использовать этот массив в циклах foreach следующим образом
foreach($rows as $id => $row){
//id is now the "count"
//keep in mind it starts from zero
}
Ответ №3:
Вы пытались добавить счетчик?
$teller=0;
while ($row = mysqli_fetch_assoc($result)) {
$price6 = substr("{$row['price']}",0,15);
if ($teller == 3) {
// do something magical
}
$teller ;
}
Комментарии:
1. Предупреждение о небольшой опечатке 🙂
2. Еще одно небольшое предупреждение об ОПЕЧАТКЕ