Mysql Вывод данных по очереди из подготовленного списка при обновлении страницы

Katerina1993

Новичок
Здравствуйте у меня такая проблема есть подготовленный список занесённый в бд, мне нужно извлекать по одной записи при каждой перезагрузки страницы пока список не кончится, после того как список кончится начать всё заново и так по кругу.
Моё решение сделать следующим образом у списка создать поле check_gr с типом enum которые принимает значение '0','1', после каждой обновление страницы вносить изменения в базу и check_gr присваивать 1, потом выбирать ту последнюю запись у которого 0 и ей тоже присваивать 1, когда у всего списка закончится 0 и у всех check_gr будет 1, с помощью цикла обнулять весь список, тут я столкнулась с проблемой когда список обнулён первая запись отображается два раза, так как у меня всего пять записей "Название 1,Название 2,Название 3,Название 4 и Название 5". Название 1 отображается два раз, как мне это можно исправить вот код?
PHP:
<?php
    include "blocks/db.php";
    //Вывод последней записи у которой условие check_gr='0'
    $sql = "SELECT * FROM photo_group WHERE check_gr='0' ORDER BY check_gr ASC limit 1";
    $res = mysql_query($sql);
    $row = mysql_fetch_array($res);
    //Подсчитывает сколько записей осталось с условием check_gr='0'
    $res = mysql_query("SELECT COUNT(*) FROM photo_group WHERE check_gr='0'");
    $count = mysql_result($res,0);
    
    
    if($count == 0)
    {
      //В случае когда условие check_gr='0' не осталось обновляем весь список и присваиваем ему check_gr='0'
      $sql = "SELECT * FROM photo_group";
      $res = mysql_query($sql);
      while($row = mysql_fetch_array($res))
      {
        mysql_query("UPDATE photo_group SET check_gr='0' WHERE id=$row[id]");
      }
      //Эта запись выводится, чтобы не было пустого значения при обновлении списка
      $sql = "SELECT * FROM photo_group WHERE id=1";
      $res = mysql_query($sql);
      $row = mysql_fetch_array($res);
      $t1 = $row["title"];
      
   }
    else
    {
        //Если записи поля check_gr со значением 0 ещё есть в базе обновляем последнюю выбранную с условием check_gr=0
        mysql_query("UPDATE photo_group SET check_gr='1' WHERE id=$row[id]");
        $t1 = $row["title"];
        
    }
    echo $t1;   
?>
 

AnrDaemon

Продвинутый новичок
Не надо насиловать БД, используйте сессии. Сохраняйте последний показанный ID в сессии пользователя, и при следующем запросе тяните следующий, а если пусто выпало - тяните первый.
 
Сверху