Быстрое исправление, изменение:
if($i <= 10){
while($row = mysqli_fetch_assoc($result)){
echo '<li>'.$row['title'].'</li>';
$i++;
}
}
... чтобы:
while($i <= 10 && $row = mysqli_fetch_assoc($result)){
echo '<li>'.$row['title'].'</li>';
$i++;
}
Объяснение:
Как только вы находитесь в условном блоке if
, состояние if
никогда не будет оцениваться снова. Только состояние while
оценивается с каждым циклом, поэтому переместите $i <= 10
в состояние while
. Используйте AND &&
, потому что вы хотите, чтобы оба условия были истинными, чтобы продолжить цикл.
Но, поскольку Fred-ii- предлагает добавить LIMIT 10
к вашему запросу базы данных, это уменьшит объем данных, которые вы должны обрабатывать.
и использование 'LIMIT 10' - это не вариант? попробуйте 'foreach' или' for' –