<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Случайная выборка из базы данных

Случайная выборка из базы данных

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

В основе лежит команда сортировки (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. Вот так делается случайная выборка из базы данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (15):

Xcho Xcho 12.06.2013 11:05:54

почему вы не используете pdo для работы с базой данных?

Ответить

Admin Admin 12.06.2013 11:07:25

Не люблю иметь дела ни с какими сторонними расширениями.

Ответить

kir1234 kir1234 02.08.2013 15:49:27

Здравствуйте, Михаил я сделал все так-же но у меня не получается. ошибок нет я 5 раз проверял подскажите с чем это связано?

Ответить

Admin Admin 02.08.2013 16:14:54

Если не получается, ошибок не может не быть. Может проблема не в самом запросе, а в таблице, с которой Вы пытаетесь работать.

Ответить

kir1234 kir1234 03.08.2013 12:09:40

вот вам Михаил мой сайт http://dfiles.ru/files/r35om683r исправьте код пожалуйста везде где ошибки еще мой e-mail: balandin_2004@mail.ru. таблицу проверил нет не в этом ошибка

Ответить

Adrenalin Adrenalin 13.12.2013 00:40:41

Не получается составить запрос, который выберет из базы (таблицы) 5 СЛУЧАЙНЫХ записей, но обязательно НАЧИНАЯ С id5 или так, чтобы id5 обязательно попал в эту выборку! Спасибо.

Ответить

tikkiwiki tikkiwiki 16.12.2013 10:44:32

Здравствуйте, Александр, попробуйте так: SELECT * FROM `table` WHERE `id` > 5 ORDER BY RAND() LIMIT 5

Ответить

shamil shamil 30.11.2014 20:58:06

здравствуйте!ставлю LIMIT 5 ,все равно выходит одна запись,и выборка всех записей неполучается. правильный ли код: function getAllVideolink() { $mysqli = connectDB(); $result_set = $mysqli->query("SELECT * FROM `video`ORDER BY RAND() LIMIT 5"); closeDB($mysqli); return resultToArray($result_set); }

Ответить

shamil shamil 30.11.2014 21:02:08

может эти записи вывожу не правильно: <?php $vlink = getAllVideolink(); foreach ($vlink as $key => $row) { $link = $row['link']; $id = $row['id']; } echo '<ul class="blok">'.$link.'</ul>'; ?>

Ответить

shamil shamil 30.11.2014 21:19:48

в поле id ставлю unsinsed, prymeri,auto_inscrement

Ответить

alexandrdante alexandrdante 30.11.2014 23:00:22

не опечатались? может auto_inCrement ?

Ответить

alexandrdante alexandrdante 30.11.2014 22:59:24

что за ORDER BY RAND() ? Limit делает лимит вывода на количество записей из колонки по порядку,учитывая предыдущие условия выборки или сортировки т.е. ORDER BY RAND() он не поймёт,если у вас нет колонки rand в таблице,и соответственно не поймёт limit 5

Ответить

shamil shamil 01.12.2014 15:53:00

ошибка найдена.echo было вне цикла

Ответить

vvv vvv 11.04.2015 05:07:18

Спасибо большое за этот урок, но решив проблему с рендером из базы данных я столкнулся с новой, у меня теперь стоит мне нажать кнопку что бы передать значение и запустить код внутри, $result=mysql_query(' SELECT * FROM `wp_options` ORDER BY RAND()'); вновь обращается к базе данных и меняет значение, как будто- я перезагрузил страницу, хотя , я его об этом не прошу. Кто подскажет, что делать?

Ответить

Mister_X Mister_X 29.07.2015 08:40:22

Михаил когда искал случайную выборку из базы данных то прочитал не мало форумах и много где говорят что ORDER BY RAND() рабочий вариант но очень тормознутный ... то есть если в БД будет к примеру 100000 строк то сервак задумается ... Почему Вы выбрали именно ORDER BY RAND() ?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.