Добро пожаловать, Гость!
Случайная запись из Mysql
PHP/MySQL | Случайная запись из Mysql
Twipas :
кто хороша знает MySQL, подскажите плиз как можно из бд вывести случайный дневник? чтоб после обновлении страницы менялся дневник на другой.
Случайная запись из Mysql
14 Апр 2015кто хороша знает MySQL, подскажите плиз как можно из бд вывести случайный дневник? чтоб после обновлении страницы менялся дневник на другой.
Последний раз редактировалось biket
26 Апр 2015
Комментарии:
Engine 26 Апр 2015
SakamskY, На такой случай в pdo есть метод fetchAll. Он выбирает абсолютно все записи по условию в один массив. Далее из этого массива можно получить количество ключей и выбрать случайную запись. Все делается одним запросом
SakamskY, На такой случай в pdo есть метод fetchAll. Он выбирает абсолютно все записи по условию в один массив. Далее из этого массива можно получить количество ключей и выбрать случайную запись. Все делается одним запросом
Кредитор 26 Апр 2015
biket (26 Апр 2015):
Rand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
biket, поддержу. но есть способы оптимизации рандомной выборки запросомRand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
biket
26 Апр 2015
SakamskY, Первым запросом получить массив id записей, а затем выбрать случайный элемент из массива.
______________________
Установи себе подпись: Ссылка
SakamskY, Первым запросом получить массив id записей, а затем выбрать случайный элемент из массива.
______________________
Установи себе подпись: Ссылка
SakamskY
26 Апр 2015
------------------
А если там записи с идентификаторами, начиная от 50 к примеру и до 60, но при этом нету 53, 56, 59
А скрипт будет выбирать от 1-7. Вообще возникнет циклическая ошибка.
biket (26 Апр 2015):
Rand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
biket, я с тобой не согласен. А если той записи, которая выпадет в рандоме, не будет существовать (удалена)? Придется выбирать заново, но где гарантия, что опять не выпадет число, записи которой в базе нет? Опять придется через рандом на php. А что если таких записей, который не существует, много? rand() в mysql выбирает рандомно из существующих записей из таблицы. В данном случае с rand() будет значительнее быстрее Rand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
------------------
А если там записи с идентификаторами, начиная от 50 к примеру и до 60, но при этом нету 53, 56, 59
А скрипт будет выбирать от 1-7. Вообще возникнет циклическая ошибка.
biket
26 Апр 2015
Rand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
______________________
Установи себе подпись: Ссылка
Rand в mysql очень медленный способ. Лучше использовать другие варианты. Например, сначала получить общее количество записей, а потом выбрать случайное число с помощь php.
______________________
Установи себе подпись: Ссылка
Optimuses 14 Апр 2015
<?php
$query = mysql_query("SELECT * FROM `notes` ORDER BY rand() LIMIT 1");
while ($post = mysql_fetch_assoc($query))
{
echo '<a href="/plugins/notes/list.php?id='.$post['id'].'"> <b>'.text($post['name']).'</b> </a>';
}
?>
<?php
$query = mysql_query("SELECT * FROM `notes` ORDER BY rand() LIMIT 1");
while ($post = mysql_fetch_assoc($query))
{
echo '<a href="/plugins/notes/list.php?id='.$post['id'].'"> <b>'.text($post['name']).'</b> </a>';
}
?>