Главная Карта сайта Написать письмо Добавить в избранное

Как сделать выборку по 8 строк из таблицы mysql при помощи php

Из заголовка вероятно не очень понятно, о чем пойдет речь, поэтому опишем тему более подробно.

Итак, приступим.

Задача стояла следующая:

1. Есть некая таблица mysql с некоторым количеством строк, к примеру, 100. Необходимо сформировать строки по 8 штук в одной группе.
2. Обернуть каждую группу строк в маркированный список <ul><li></li></ul>.

Пример:
<li>1-8 строки</li><li>9-16 строки</li><li>17-24</li> и т.д.

Прежде всего пишем подключение к базе данных.
require_once('connect.php');

Важный момент! Определяем количество строк в группе.
$num_pic = 8;

Далее необходимо подсчитать общее количество строк в таблице.
$count = mysql_num_rows(mysql_query("SELECT * FROM table WHERE field_shw=1")); //field_shw является фильтром отображения на сайте

Теперь, когда мы знаем количество строк, нужно написать выборку из таблицы с нужными нам полями.
$query = "SELECT * FROM table WHERE field_shw=1 ORDER BY field_id DESC";
$result = mysql_query($query);

Далее пишем правило
if (mysql_num_rows($result) > 0) //если в таблице есть строки то выполняем некое действие
        {

        Создаем цикл с шагом 8.
        for ($i = 1; $i <= $count; $i = $i + $num_pic) //$count-общее количество записей, $num_pic-количество строк в группе(в данном случае шаг в 8 строк)
              {

              Оборачиваем 8 строк в <li>.
              echo "<li>";

              Создаем еще один цикл.
              for ($j = 0; $j <= $num_pic-1; $j++) //Этот цикл создает 8 записей, т.е группу из 8-ми строк
                   {


                   Создаем ассоциативный массив.
                   $row = mysql_fetch_array($result);
                   
                    Выводим на экран 8 строк данных.
                    echo $row["field"]."<br/>";

                    } //закрываем цикл

               echo "</li>"; //закрываем обертку <li>

               } //закрываем цикл с шагом 8

          } //здесь можно написать else

          else
          {
          //если в таблице нет строк, то пишем
          echo "В таблице 0 строк";
          }


Надеюсь, что данная статья поможет тем , кто только начинает изучать программирование, и php в частности.

Ниже приведена реализация без пояснений (чистый код).

require_once($_SERVER["DOCUMENT_ROOT"].'/connect.php');
$num_pic = 8;
$count = mysql_num_rows(mysql_query("SELECT * FROM table WHERE field_shw=1")); //field_shw является фильтром отображения на сайте
$query = "SELECT * FROM table WHERE field_shw=1 ORDER BY field_id DESC";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) //если в таблице есть строки то выполняем некое действие
        {
        for ($i = 1; $i <= $count; $i = $i + $num_pic) //$count-общее количество записей, $num_pic-количество строк в группе(в данном случае шаг в 8 строк)
              {
              echo "<li>";
              for ($j = 0; $j <= $num_pic-1; $j++) //Этот цикл создает 8 записей, т.е группу из 8-ми строк
                   {

                   $row = mysql_fetch_array($result);
                    echo $row["field"]."<br/>";
                    } //закрываем цикл
               echo "</li>"; //закрываем обертку <li>
               } //закрываем цикл с шагом 8
          } //здесь можно написать else
          else
          {
          echo "В таблице 0 строк";
          }