[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вытащить в случайном порядке данные из бд
vvv
Есть необходимость вытащить данные строки из Базы данных . Строка должна выбираться в случайном порядке. Подскажите пожалуйста, как это сделать ???
vvv
Сам спросил сам отвечаю )


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

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

SELECT * FROM `table` ORDER BY RAND()
Такой запрос вытащит все записи из таблицы и перемешает их случайным образом. На практике это нужно редко. Гораздо чаще нужно выводить именно определённое число записей:

SELECT * FROM `table` ORDER BY RAND() LIMIT 5
И данный запрос уже имеет практическую пользу, так как он позволяет вывести 5 случайных записей. Можно так вывести, например, 5 случайных изображений на страницу.

Очень часто требуется вытащить не просто случайные записи, но чтобы они удовлетворяли какому-либо условию:

SELECT * FROM `table` WHERE `id` > 5 ORDER BY RAND() LIMIT 5
Данный запрос вытащит 5 случайных записей, у которых id больше 5. Вот так делается случайная выборка из базы данных.
sergeiss
Единственное ограничение, это то, что при большом количестве записей запрос будет долго выполняться. Поэтому, если записей много, придется решать эту задачу "не в лоб".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vvv
sergeiss, спасибо за комментарий. Такой вопрос возник, как сделать что бы при нажатие на кнопку данные которые ввёл человек не перегружали страницу , а работали с ними ? Вообще это возможно в php.
Суть в чём что выводится в случайном порядке одно поле из базы данных. Человек вводит значения одного из полей , если оно совпадает то true , если нет false.

Проблема в том, что когда у меня человек ввёл значение и нажимает на кнопку срабатывает вновь обращение в Базе данных и значение слова меняется тем самым , не даёт продолжить работу дальше с этими значениями на странице.

Надеюсь понятно объяснил?)
Michael
Цитата
и нажимает на кнопку

if (isset($_POST['submit'])) {
// тут мы уверены что это страница после сабмита
}


_____________
There never was a struggle in the soul of a good man that was not hard
vvv
Это понятно, но этот о и не работает :) Вот код, есть какие то мысли?


// случайны образом берём строку из БД
$result=mysql_query(' SELECT * FROM `wp_options` ORDER BY RAND()');



$row=mysql_fetch_array($result);
$engSlovo=$row['option_name'];
$slovo = $row['option_value'];
echo '<br> Что значит слово :<h2> '. $engSlovo .
'<form name="test" method="post" action=""> <input type="text" name ="abs" id="abs" size="40"> <input type="submit" value="Отправить">'.' </p> </form>';

?>

//после тогда как человек ввёл даные

<?php
$abs = $_POST['abs'];

//сравнивает значение
$look = strnatcasecmp ( $abs , $slovo );


if($abs == true){
if ($look == 0){

Echo ' Поздравляю!!! Вы абсолютно правы!!! <br>'.$row['option_name'] . ' - '.$row['option_value'].'<br>';

}

else{

Echo 'Не правильно пробуйте ещё раз!';
}

}
else{


}



?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.