При использовании цикла while для извлечения результатов базы данных, как мне перейти к третьей строке и получить число

#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. Еще одно небольшое предупреждение об ОПЕЧАТКЕ