Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод случайной фотографии из базы данных
 
 автор: Dizels   (04.09.2007 в 11:25)   письмо автору
 
 

Есть раздел на сайте - фотогалерея. Основан он на фотогалерее, которая описывается в книге "PHP 5 Практика создания web-сайта", толька слегка модифицирован под мои нужды.

Так вот возник вопрос - как сделать случайный вывод 1 любой фотки из этого раздела? Структура БД для раздела "фотогалерея" следущая:


-- 
-- Структура таблицы `photo`
-- 

CREATE TABLE `photo` (
  `id_photo` int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `small` tinytext NOT NULL,
  `big` tinytext NOT NULL,
  `hide` enum('show','hide') NOT NULL default 'show',
  `pos` int(11) NOT NULL default '0',
  `id_catalog` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id_photo`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

-- 
-- Структура таблицы `photocat`
-- 

CREATE TABLE `photocat` (
  `id_catalog` int(8) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `description` tinytext NOT NULL,
  `pos` smallint(3) NOT NULL default '0',
  `hide` enum('show','hide') NOT NULL default 'show',
  `id_parent` int(8) NOT NULL default '0',
  PRIMARY KEY  (`id_catalog`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

   
 
 автор: Петр   (04.09.2007 в 11:35)   письмо автору
 
   для: Dizels   (04.09.2007 в 11:25)
 

Сначала делаешь запрос к таблице фоток, получаешь максимальный id_photo, потом делаешь $rand_id = rand(0, макс.число) и подставляешь в запрос, эту переменную.
Можно сделать в зависимости от часа (дня), типа фото часа
Если не разберешься пиши помогу

   
 
 автор: cheops   (04.09.2007 в 12:16)   письмо автору
 
   для: Dizels   (04.09.2007 в 11:25)
 

Для этого можно осуществить запрос (для первого раздела id_catalog = 1)
SELECT * FROM photo 
WHERE id_catalog = 1 
ORDER BY RAND() 
LIMIT 1

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования