На главную Статьи Функции

Выбор случайного поля из таблицы базы данных SQL.




Иногда бывает нужно выбрать случайное значение из базы данных SQL. Как это сделать я постараюсь описать в этой статье.

Итак для начала нам понадобится таблица, содержащая n-ое количество ячеек. Ну и естественно функция, генерирующая случайные числа, а именно: mt_rand($num,$ to), где  $from – начало ряда для случайных чисел, $to – конечно число ряда. Обычно, для нумерации ячеек вводится столбец id – уникальный столбец с параметром AUTO_INCREMENT.
Первое, что необходимо сделать – определить интервал доступных id, ведь бывает, что нумерация начинается далеко не с 1:

$query1 =  mysql_query(“SELECT * FROM table ORDER BY id ASC LIMIT 1”);
$query2 =  mysql_query(“SELECT * FROM table ORDER BY id DESC LIMIT 1”);

$query1 вернет первую строку таблицы, $query2 – последнюю.

дальше разбиваем на массивы:

$first_id =  mysql_fetch_assoc($query1);
$last_id =  mysql_fetch_assoc($query2);

Получаем случайный идентификатор id:

$rand_id = mt_rand($first_id[‘id’],$last_id[‘id’]);

И делаем выборку из таблицы:

$query3 =  mysql_query (“SELCET * FROM table WHERE id = ‘$rand_id’”);

Но это еще не все, а если окажется, что поля с id = $rand_id нет, такое вполне может случиться, тогда нужно поставить условие, чтобы запрос не вернул 0:

if (mysql_num_rows($query3)  == 0) {
  $rand_id = mt_rand($first_id[‘id’],$last_id[‘id’]);
  $query3 =  mysql_query (“SELCET * FROM table WHERE id = ‘$rand_id’”);
}
else {
	/*Выводим  полученный результат*/
}

И наслаждаемся работой скрипта.



© 2010-2024 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна

обратная связь