Как ограничить элементы из цикла while

Это мой цикл while из моего проекта:

<?php $select = "SELECT * FROM nk_showcase"; $query = $db->rq($select); while ($user = $db->fetch($query)) { ?> <div class="index"> <a href="details.php?id=<?php echo $user['id']; ?>"><img width="200" height="171" alt="<?php echo $user['title']; ?>" src="<?php echo $url; ?>/images/niagakit/<?php echo $user['thumb']; ?>"/></a> <h3><a href="<?php echo $url; ?>/"><?php echo $user['title']; ?></a></h3> <p><a href="<?php echo $url; ?>/"><?php echo $user['url']; ?></a></p> </div> <?php } ?> 

Как вы уже знаете, этот цикл while будет зацикливаться на все элементы, найденные в моей базе данных, поэтому мое quuestion – как ограничить этот цикл только для 10 элементов только из моей базы данных и как повернуть эти элементы при каждом обновлении?

В SQL:

 $select = "SELECT * FROM nk_showcase LIMIT 0,10"; 

или в PHP:

 $counter = 0; $max = 10; while (($user = $db->fetch($query)) and ($counter < $max)) { ... // HTML code here.... $counter++; } 

Что касается поворота, см. Ответ Фийдена.

Повернуть как в случайном порядке, так и в качестве следующих 10 элементов?

Большинство СУБД позволяют вам упорядочивать строки случайным образом:

 -- MySQL SELECT * FROM nk_showcase ORDER BY RAND() LIMIT 10 -- PostgreSQL SELECT * FROM nk_showcase ORDER BY RANDOM() LIMIT 10 

Который будет выбирать 10 случайных строк каждый раз, когда вы обновляете страницу

Если вы хотите показать следующие 10 элементов, вам придется разбивать страницы на страницы (и использовать синтаксис LIMIT X OFFSET Y)

Вы должны изменить свой запрос $ select, попробуйте использовать LIMIT до 10, если вам просто нужно 10 первых элементов или попробуйте также с OFFSET, если вам нужно разбивать на страницы результаты.

 $select.=" OFFSET $start LIMIT $range;"; 

Затем вам нужно управлять переменными $ start и $ range, такими как:

 $size_page=10; if (!$page) { $start = 0; $page=1; } else { $start = ($page - 1) * $size_page; } 

Вы можете заметить, что $ range должен быть одним и тем же значением $ size_page, и вам нужно просто вычислить начальное значение для каждой итерации с учетом #pages