Случайный выбор записей из базы данных с помощью PHP
Одной из часто встречающихся задач при разработке web-приложения является случайная
генерация записей из базы данных. Такая задача может возникнуть, например, при построении
специального предложения на корпоративном сайте. Напишем PHP-скрипт, который выбирает случайно
три записи из таблицы базы данных MySQL.
Ниже на скриншоте показан примерный вид тестовой таблицы:
Далее напишем следующий PHP-скрипт, используя появившуюся в PHP4, функцию array_rand():
1. Файл dbopen.php (открывает соединение с MySQL)
<?php $hostName = ""; $userName =
"yura"; $password = "yura"; $databaseName =
"rnd"; if
(!($link=mysql_connect($hostName,$userName,$password)))
{ printf("Ошибка при соединении с MySQL
!\n"); exit(); } if
(!mysql_select_db($databaseName, $link)) { printf("Ошибка
базы данных !"); exit(); }
?>
|
2. Файл test.php (основной скрипт)
|
<?php
require("dbopen.php"); $sSQL = "SELECT txt FROM
test"; if (!($result = mysql_query($sSQL, $link)))
{ printf("Ошибка запроса к БД
!".mysql_error($link)); exit(); }
$i=0; while($row = mysql_fetch_array($result))
{
$arr[$i] =
$row["txt"]; $i++; }
mt_srand((double)microtime() * 1000000);
$rnd = array_rand($arr, 3);
echo($arr[$rnd[0]] . "<br><br>");
echo($arr[$rnd[1]] . "<br><br>");
echo($arr[$rnd[2]] . "<br><br>");
?>
|
Всю работу выполняет функция array_rand(). Она случайным образом выбирает ключ из массива
arr. Второй параметр функции (3) говорит о том, что надо вернуть три случайных значения.
Ниже на скриншоте показан пример работы test.php:
Пример проекта прилагается: phprand.zip
|