Выбор случайных записей для использования на веб-странице

Привет, ребята,

У меня есть веб-сайт. У меня есть раздел под названием "Мобильный раздел". Этот раздел содержит множество категорий (название объекта + изображение + небольшое описание и ссылка для скачивания) Теперь раздел считается внутренним. Я хочу просмотреть случайные записи из этого раздела на первой странице (я не знаю, как RSS, но не Rss), показывая название объекта и подкатегории, к которым он принадлежит, и его изображение, если это возможно. Я надеюсь, что кто-нибудь поймет, что я пытаюсь сказать.

Это мой веб-сайт ЗДЕСЬ, и это ссылка на внутреннюю страницу ЗДЕСЬ, проверьте блок с надписью Mobile Section. Это вроде беспорядок. есть ли какой-нибудь сценарий или технология, чтобы просмотреть его надлежащим образом, чтобы просмотреть, покажите мне примеры, если это возможно

Я использую php и MySQL

Заранее спасибо

Не нужно извиняться. Я англичанин и плохо говорю по-английски ...

Mike B 10.01.2009 19:16

Какие технологии вы используете? Я предполагаю PHP из-за расширения страницы. Вы создаете контент из базы данных, то есть MySQL?

Kev 10.01.2009 19:20

да, я использую php и использую MySQL

shicosvnki 10.01.2009 19:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
223
3

Ответы 3

Вы действительно хотите, чтобы это было случайным образом? Приятно иметь самые популярные на домашних страницах, и они могут оказаться более полезными и информативными для ваших посетителей.

Тем не менее, было бы очень легко написать метод в Microsoft SQL для этого:

SELECT TOP 1 Name, Picture, Description, Link
FROM Software
WHERE Category = 'Mobile Section'
ORDER BY NEWID()

Если вы не используете Microsoft SQL, вот сайт со случайными селекторами для многих баз данных.

Вы должны использовать тот же код со страниц вашей категории, чтобы просмотреть случайный выбор домашней страницы. sy-stu.com/stu/prog.php?id=3 Все, что меняется, - это оператор выбора базы данных. Приятно использовать постоянный визуальный опыт.

DavGarcia 10.01.2009 19:38

Эта идея как бы украдена у Дэвида Томаса Гарсии. Что вы можете сделать, так это реализовать в своей базе данных поле, которое будет отслеживать просмотры продукта (или вы можете отказаться от этого и просто отслеживать покупки), и вы можете выбрать элементы из своей базы данных как «Лучшие продавцы» или «Горячие». Товары »для отображения на вашем сайте.

Что бы вы ни делали, не используйте ORDER BY RAND () в MySQL. Это не масштабируется. Да, похоже, что для небольшого количества строк это нормально, потому что набор данных невелик. ORDER BY RAND () требует сканирования всей таблицы, а это означает, что чем больше ваша таблица, тем дольше будет выполняться запрос. Это будет проявляться в виде «Ну и дела, сайт кажется медленнее» ... и все медленнее ... и медленнее ...

Если у вас есть столбец id, который является целым числом и действует как первичный ключ, вы можете сгенерировать максимальное значение в PHP, прежде чем запрашивать его, это будет намного быстрее, потому что вы фактически используете индекс.

Примером может быть что-то вроде:

$random_row_id = rand(1, $max);

а потом...

SELECT * FROM foo WHERE id = $random_row_id

Вам нужно будет выяснить, как получить свой $ max, но, скорее всего, вы можете просто получить идентификатор последней строки.

Одно предостережение: если вы удалили записи из таблицы, у вас будут «дыры», где вы можете запросить строку, которая больше не существует. В этом случае вы можете просто продолжать зондирование, пока не найдете совпадение - это все равно будет намного быстрее, чем полное сканирование таблицы.

Другие вопросы по теме