Есть необходимость вытащить данные строки из Базы данных . Строка должна выбираться в случайном порядке. Подскажите пожалуйста, как это сделать ???
Сам спросил сам отвечаю )
Очень часто в работе программиста требуется вывести что-то случайное, чтобы это постоянно менялось от запуска к запуску. Например, вывести случайную статью, вывести случайную цитату, вывести случайные комментарии и многое другое. В этой статье мы с Вами разберём случайную выборку из базы данных.
В основе лежит команда сортировки (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
11.04.2015 - 09:07
Единственное ограничение, это то, что при большом количестве записей запрос будет долго выполняться. Поэтому, если записей много, придется решать эту задачу "не в лоб".
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
sergeiss, спасибо за комментарий. Такой вопрос возник, как сделать что бы при нажатие на кнопку данные которые ввёл человек не перегружали страницу , а работали с ними ? Вообще это возможно в php.
Суть в чём что выводится в случайном порядке одно поле из базы данных. Человек вводит значения одного из полей , если оно совпадает то true , если нет false.
Проблема в том, что когда у меня человек ввёл значение и нажимает на кнопку срабатывает вновь обращение в Базе данных и значение слова меняется тем самым , не даёт продолжить работу дальше с этими значениями на странице.
Надеюсь понятно объяснил?)
Michael
11.04.2015 - 18:51
Цитата |
и нажимает на кнопку |
if (isset($_POST['submit'])) {
}
_____________
There never was a struggle in the soul of a good man that was not hard
Это понятно, но этот о и не работает :) Вот код, есть какие то мысли?
$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{
}
?>
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.