За последние 24 часа нас посетили 35026 программистов и 1738 роботов. Сейчас ищут 790 программистов ...

Как реализовать не повторяющийся рандом при подгрузки записей ?

Тема в разделе "PHP для новичков", создана пользователем Khaybulla, 4 июн 2017.

  1. Khaybulla

    Khaybulla Активный пользователь

    С нами с:
    4 мар 2016
    Сообщения:
    89
    Симпатии:
    2
    У меня на главной странице 25 записей при подгрузке должно выдать рандомно ещё 25 записей но без тех которые уже там имеются как реализовать ?

    В данный момент такой код, подгружается всё но некоторые записи совпадают после подгрузки :


    PHP:
    1. <?
    2. $result = mysql_query("SELECT * FROM records ORDER BY RAND() LIMIT 25");
    3. while($records = mysql_fetch_array($result)) {
    4. if(mysql_num_rows($result) == 0) {
    5. echo "Нет записей";
    6. }
    7. ?>
    8. <li>
    9. <?php echo $records['title'] ?>
    10. </li>
    11. <?
    12. }
    13. ?>


    Код (Javascript):
    1. $(document).ready(function() {
    2. $("#load").hide();
    3. });
    4. var num = 25;
    5. $(function() {
    6. $("#more").click(function() {
    7. $("#load").show();
    8. $.ajax({
    9. url: "/more.php",
    10. type: "GET",
    11. data: {"num": num},
    12. cache: false,
    13. success: function(more) {
    14. if(more == 0) {
    15. $("#more").remove();
    16. $("#load").hide();
    17. } else {
    18. $("#show-more").append(more);
    19. num = num + 25;
    20. $("#load").hide();
    21. }
    22. }
    23. });
    24. });
    25. });

    Файл more.php
    PHP:
    1. <?
    2. if(isset($_GET['num'])) {
    3. $num = $_GET['num'];
    4. $result = mysql_query("SELECT * FROM records ORDER BY RAND() LIMIT $num, 25");
    5. while($records = mysql_fetch_array($result)) {
    6. if(mysql_num_rows($result) == 0) {
    7. echo "Нет записей";
    8. }
    9. sleep(0.5);
    10. ?>
    11. <li>
    12. <?php echo $records['title'] ?>
    13. </li>
    14. <?
    15. }
    16. }
    17. ?>
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    нужно где-то хранить уже выданные трэки.
    Либо в сессии массив с id-шниками держать, либо в атрибутах типа data-id на клиенте и передавать массив на сервер.
    Мне лично оба варианта кажутся зашкварными. Особенно второй.
    Но ничего менее зашкварного в голову не приходит :)