Ограничить число итераций foreach

131
20 января 2021, 00:50

Подскажите, как ограничить количество строк таблицы, выводимых циклом foreach из БД sqlite на страницу? Нужно выводить не более 500 строк. а в БД их 10 тысяч.

Этот код выводит все строки по запросу:

<?php foreach(property_list('`rooms` LIKE "1(%"') as $item):?>
<tr>
        <td><?=$item['rooms']?></td>
        <td><?=$item['area']?></td>
        // еще десяток ячеек с данными из БД
    </tr>
<?php endforeach;?> 

Пыталась сделать ограничение количества tr так:

<?php 
$i = 0;
foreach(property_list('`rooms` LIKE "1(%"') as $item):?>
    <tr> 
    <td><?=$item['rooms']?></td>
    <td><?=$item['area']?></td>
    <td>...</td> 
    </tr>
    $i+=1;
    if (++i > 500) break;
<?php endforeach;?> 
?>

Но в результате на страницу ровно 500 раз выводятся не данные из БД, а:

$i+=1; if (++i > 500) break;

Подскажите, что неправильно сделала? Мне пока ума не хватает до конца довести.

Спасибо!

P.S.

function property_list($where=FALSE){
    $db = db();
    //return $db->query("SELECT * FROM property ".($where?'WHERE '.$where:'').' ORDER BY `rooms`',PDO::FETCH_ASSOC);
    return $db->query("SELECT * FROM property ".($where?'WHERE '.$where:'').' ORDER BY `created_at` DESC',PDO::FETCH_ASSOC);
}

Цитата

Answer 1
  1. Можешь лимит в запросе поставить
    function property_list($where=FALSE){
        $db = db();
        return $db->query("SELECT * FROM property ".($where?'WHERE '.$where:'').' ORDER BY `created_at` DESC LIMIT 500',PDO::FETCH_ASSOC);
    }
  1. Или свое условие поместить в php тег
<?php 
$i = 0;
foreach(property_list('`rooms` LIKE "1(%"') as $item):?>
    <tr> 
    <td><?=$item['rooms']?></td>
    <td><?=$item['area']?></td>
    <td>...</td> 
    </tr>
<?php 
    $i++;
    if (i > 500) break; ?>
<?php endforeach;?> 
READ ALSO
Можно ли найти по тексту id родителя?

Можно ли найти по тексту id родителя?

Делаю поиск на сайт, и мне нужно по тексту найти id родителя, как это можно сделать?

116
Почему не переносит на следующую строку?

Почему не переносит на следующую строку?

имеется такая проблема, что у меня не переносит код на следстроку в PHP

95
Есть ли возможность работать с проектом в PhpStorm сразу на удалённом компьютере по ssh соединению?

Есть ли возможность работать с проектом в PhpStorm сразу на удалённом компьютере по ssh соединению?

Мне достаточно проблематично скачивать проекты с удалённого хостингаМогу ли я настроить PhpStorm для работы сразу с удалённого компьютера по ssh ?

104