Рандомизация в порядке выписки - PullRequest
0 голосов
/ 07 января 2012

Я возился с поисковой системой, и я пытаюсь заставить оператор while запускаться и выводить результаты в случайном порядке. Вот код, который у меня есть сейчас.

if ($numrows > 0) {

while ($row = mysql_fetch_assoc($query)) {

    $id = $row['id'];
    $title = $row['title'];
    $description = $row['description'];
    $keywords = $row['keywords'];
    $link = $row['link'];

    echo "<div id='resultbox'><h3><a href='$link'>$title</a></h3><br><p>$description</p></div>";



}

Мне нужно теоретическое утверждение while для запуска и отображения результатов совершенно случайно.

Есть ли в любом случае это можно сделать?

Спасибо!

Ответы [ 4 ]

5 голосов
/ 07 января 2012

Вы можете сделать order by rand() в своем запросе, чтобы упорядочить результаты случайным образом.

0 голосов
/ 07 января 2012

Помимо использования SELECT * FROM search WHERE row1='1' ORDER BY rand()

Вы могли бы:

while ($row = mysql_fetch_assoc($query)) {
    $data[] = $row;
}
shuffle($data);

foreach($row as $k=>$v) {
    $id = $row['id'];
    $title = $row['title'];
    $description = $row['description'];
    $keywords = $row['keywords'];
    $link = $row['link'];

    echo "<div id='resultbox'><h3><a href='$link'>$title</a></h3><br><p>$description</p</div>";
}
0 голосов
/ 07 января 2012
  1. Используйте Foreach вместо времени
  2. Подсчитайте результаты перед рукой.
  3. создайте массив с целыми числами до количества ваших результатов.
  4. рандомизируйте этот массив с нативной функцией php для этого.
  5. при выполнении foreach ($ k => $ v kind) используйте следующее число в массиве, который вы зашифровали, а затем сбросьте его.
0 голосов
/ 07 января 2012

Я не думаю, что вы можете сделать это в том же заявлении while. Я думаю, что вы должны поместить результаты запроса в список, а затем, используя его размер, вы можете использовать генератор случайных чисел и извлекать из него элементы, используя их индексы.

Вы также можете перетасовать список и затем извлечь его из него по порядку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...