Случайный вывод 15 записей из таблицы

Говорим обо всем, что не имеет отношения к основной тематике сайта и форума. Установлена авточистка (400 дней).

Случайный вывод 15 записей из таблицы

Сообщение php4beginner 29.04.2008 18:37

Нашел скриптец вывода данных из таблицы прикрутил - пашет, а потом решил сделать рандовизированный вывод 15 любых записей из таблицы - не получается. По вебу искал примеры - ниче не нашел, что можно было бы адаптировать!
Код следующий:

Код: Выделить всё
/* Замените нижеследующие переменные на свои */
$host = "localhost";    // MySQL server
$user_db = "t_sc";        // MySQL пользователь
$pass_db = "******";            // MySQL пароль
$dbase = "t_sc";        // MySQL база данных
$dtable = "c_ns";        // Таблица в базе данных

/* Соединение с сервером базы данных */
mysql_connect ($host, $user_db, $pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);
/* Создание SQL запроса */
$sql = "SELECT id_news, title, date, url FROM $dtable";
/* Исполнение SQL запроса */
$result = mysql_query($sql);
/* Проверка количества вернувшихся строчек в результате*/
$rows = mysql_num_rows($result);
/* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/
if ((!$rows) || ($rows < 1)) {echo "Результатов НЕТ!!!";}
else {



  echo $result;

echo "<ul>";
while(list($id_news, $title, $date, $url) = mysql_fetch_row($result)) {
echo "<li>$date &nbsp;&nbsp;&nbsp;<a href='go.php?to=http%3A%2F%2Fmyphpbb.com.ru'><strong>$title</strong></a></li>";
     }
}
echo "</ul>";



Как сделать рандомизированный вывод 15 записей?
Ввиду уважения к форуму моя подпись стала скромней!
Коммерческая недвижимость
php4beginner
phpBB 1.0.0
 
Сообщения: 2
Зарегистрирован: 31.03.2008 17:05

Сообщение Палыч 29.04.2008 20:11

Если в таблице есть (что вероятнее всего) первичный ключ, например поле rem_id (с автоинкрементом, то есть по сути - номер записи), то с помощью функции rand (0, $max ) (где $max - максимальный номер записи)
Где то так:
Код: Выделить всё
    $namber = array();
    for($i = 0; $i <= 15; $i++)
    {
        $namber[$i] = rand (0, $max );
    }

$sql = "SELECT id_news, title, date, url FROM $dtable WHERE rem_id IN($namber) LIMIT 15";
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
Никогда не бойся делать то, что ты пока не умеешь. Помни, что Ковчег был построен любителем. Профессионалы строили Титаник...
Аватара пользователя
Палыч
Просто Палыч
 
Сообщения: 6003
Зарегистрирован: 24.05.2006 23:20
Откуда: Питер


Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0