MySQL следующий и предыдущий - PullRequest
1 голос
/ 25 октября 2011

В настоящее время я использую mysql и php для отображения 9 случайных результатов из моей таблицы из примерно 1100 записей.

Можно ли иметь следующую и предыдущую кнопку, даже если она случайная? Я посмотрел несколько примеров, уже размещенных здесь, но они, кажется, специфичны для приложения / проекта. Вот как выглядит мой код ..

    function executeQuery($searchKey)
    {

        if ($searchKey == null)
        {
    $query = "SELECT DISTINCT flightNumber, flightCity FROM allFlights LIMIT 0,9";
        //DEBUG -echo "<p>$searchKey</p>";echo "<p>$query</p>";
        }
        else
        {
        //DEBUG -echo "<p>$searchKey</p>";echo "<p>var not null</p>";
           $query = "Select distinct * from allFlights where flightCity LIKE '%$searchKey%' LIMIT 0,9";
        //DEBUG -echo "<p>$searchKey</p>";echo "<p>$query</p>";
        }
   $result=mysql_query($query);
   $numrow=mysql_numrows($result);
   if ($numrow === 0)
   {
    $query = "Select distinct * from allFlights where flightNumber LIKE '%$searchKey%' LIMIT 0,9";
    $result=mysql_query($query);
    $numrow=mysql_numrows($result);
   }
return $result;
     }

       function populate ()
       {
         $searchKey = mysql_real_escape_string($_POST["search"]); //assigns user input to searchKey variable
         //DEBUG -echo "<p>$searchKey</p>";
         $result=executeQuery($searchKey);
         $numrow=mysql_numrows($result);

     if ($numrow == 0)
     {
        echo "<center><p><b> No results found, please try another keyword.</p></center></b>";
     }
     else
     { display results. -- this part i have working.
             }

Я предпочитаю при загрузке страницы это происходит: -Текущая позиция относительно количества доступных рейсов перечислены. (Сейчас показаны 9 из 1100 рейсов) -9 случайных рейсов отображаются. -Следующая кнопка, которая покажет следующие 9 полетов (случайное было бы неплохо.) -Предыдущая кнопка, которая покажет предыдущие (оригинальные) 9 полетов (случайное было бы неплохо.)

Когда все будет сказано и сделано, я бы хотел, чтобы я мог загрузить страницу, идентифицирующую 9 случайных рейсов, нажмите «Далее», чтобы определить новые 9 случайных рейсов, затем «предыдущий» и определить исходные 9 случайных рейсов.

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 25 октября 2011

Вы можете использовать ORDER BY RAND (seed), чтобы задать псевдослучайный порядок, который можно повторить:

SELECT * 
FROM ....
ORDER BY RAND(9325)
LIMIT 99, 9

Настройте смещение для перемещения назад и вперед по результатам.Начальное число может быть любым целым числом, и вы можете изменить его, если хотите повторно рандомизировать порядок, но вы должны использовать то же начальное число при нажатии назад или вперед.

...