Всё было бы проще если бы она была одна, но я хочу сделать разные галереи с набором изображений, ну и соответственно навигацию к ним если их будет много...
Вот наглядный пример чего я задумал:
Галерея первая
первьюв изображений из галереи (рандом) допустим 4 изображения
Галерея вторая
первьюв изображений из галереи (рандом) допустим 4 изображения
Галерея третья
первьюв изображений из галереи (рандом) допустим 4 изображения
и.т.д
Первый вопрос у меня это как лучше сделать таблицы в mysql. Делать одну таблицу или делать таблицу с названиями галереи и связать её определённым ключом с другой в которой находятся изображения, дата, опись и т.д., или может возможны ещё варианты...
Спустя 22 минуты, 5 секунд (10.01.2011 - 12:04) alex12060 написал(а):
Проще сделать так:
Галереи (gallerys):
id (auto_increment) - Уникальный ид таблицы
title - Название
cover - Кавер (обложк0) галереи
count - кол-во фоток
show - показ выбранной галереи
maxphotos -
Фотографии (photos)
id (auto_increment) - Уникальный ид таблицы
aid - (albumId) - Привязка к определенной галерее
title - Определение фото
show - Показ фотографии
Ну и еще можно надумать) По-моему это самый верный способ)
Галереи (gallerys):
id (auto_increment) - Уникальный ид таблицы
title - Название
cover - Кавер (обложк0) галереи
count - кол-во фоток
show - показ выбранной галереи
maxphotos -
Фотографии (photos)
id (auto_increment) - Уникальный ид таблицы
aid - (albumId) - Привязка к определенной галерее
title - Определение фото
show - Показ фотографии
Ну и еще можно надумать) По-моему это самый верный способ)
Спустя 16 минут, 8 секунд (10.01.2011 - 12:20) Evilsoul написал(а):
alex12060 - спасибо, об этом варианте я думал (немного иначе), но хочется ещё побольше мнений услышать
Вот как я себе это представлял, если с двух таблиц...
Галереи (galleries):
id (auto_increment) - Уникальный ид таблицы
date - Дата (создания галереи)
title - Название
description - Опись галереи
Изображения (images)
id (auto_increment) - Уникальный ид таблицы
aid - (albumId) - Привязка к определенной галерее
date - Дата (добавления изображения)
subtitle - Подпись изображения
fname - Имя изображения
Объясни пожалуйста эти столбцы...
cover - Кавер (обложк0) галереи
count - кол-во фоток
show - показ выбранной галереи
maxphotos -
Вот как я себе это представлял, если с двух таблиц...
Галереи (galleries):
id (auto_increment) - Уникальный ид таблицы
date - Дата (создания галереи)
title - Название
description - Опись галереи
Изображения (images)
id (auto_increment) - Уникальный ид таблицы
aid - (albumId) - Привязка к определенной галерее
date - Дата (добавления изображения)
subtitle - Подпись изображения
fname - Имя изображения
Объясни пожалуйста эти столбцы...
cover - Кавер (обложк0) галереи
count - кол-во фоток
show - показ выбранной галереи
maxphotos -
Спустя 4 часа, 15 минут (10.01.2011 - 16:35) Evilsoul написал(а):
Дамп базы галерей:
Дамп базы изображений:
Сам код для меню галерей:
Поосуждайте меня пожалуйста...
Может будут замечания по оптимизации...
Свернутый текст
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 10 2011 г., 15:38
-- Версия сервера: 5.1.36
-- Версия PHP: 5.2.10
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `test`
--
-- --------------------------------------------------------
--
-- Структура таблицы `galleries`
--
CREATE TABLE IF NOT EXISTS `galleries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`title` varchar(150) NOT NULL,
`description` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
--
-- Дамп данных таблицы `galleries`
--
INSERT INTO `galleries` (`id`, `date`, `title`, `description`) VALUES
(1, '2011-01-10 12:37:21', 'Первая галерея', 'опись'),
(2, '2011-01-10 12:37:21', 'Вторая галерея', 'опись'),
(3, '2011-01-10 12:37:21', 'Третья галерея', 'опись'),
(4, '2011-01-10 12:37:21', 'Четвертая галерея', 'опись'),
(5, '2011-01-10 12:37:21', 'Пятая галерея', 'опись'),
(6, '2011-01-10 12:37:21', 'Шестая галерея', 'опись'),
(7, '2011-01-10 12:37:21', 'Седьмая галерея', 'опись'),
(8, '2011-01-10 12:37:21', 'Восьмая галерея', 'опись'),
(9, '2011-01-10 12:37:21', 'Девятая галерея', 'опись'),
(10, '2011-01-10 12:37:21', 'Десятая галерея', 'опись');
Дамп базы изображений:
Свернутый текст
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Янв 10 2011 г., 15:32
-- Версия сервера: 5.1.36
-- Версия PHP: 5.2.10
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- База данных: `test`
--
-- --------------------------------------------------------
--
-- Структура таблицы `images`
--
CREATE TABLE IF NOT EXISTS `images` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`aid` int(10) unsigned NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`subtitle` varchar(150) DEFAULT NULL,
`fname` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=51 ;
--
-- Дамп данных таблицы `images`
--
INSERT INTO `images` (`id`, `aid`, `date`, `subtitle`, `fname`) VALUES
(1, 1, '2011-01-10 12:38:27', NULL, '1.jpg'),
(2, 1, '2011-01-10 12:38:27', NULL, '2.jpg'),
(3, 1, '2011-01-10 12:38:27', '', '3.jpg'),
(4, 1, '2011-01-10 12:38:27', '', '4.jpg'),
(5, 1, '2011-01-10 12:38:27', NULL, '5.jpg'),
(6, 2, '2011-01-10 12:40:06', NULL, '6.jpg'),
(7, 2, '2011-01-10 12:40:06', NULL, '7.jpg'),
(8, 2, '2011-01-10 12:40:06', NULL, '8.jpg'),
(9, 2, '2011-01-10 12:40:06', NULL, '9.jpg'),
(10, 2, '2011-01-10 12:40:06', NULL, '10.jpg'),
(11, 3, '2011-01-10 12:40:06', NULL, '11.jpg'),
(12, 3, '2011-01-10 12:40:06', NULL, '12.jpg'),
(13, 3, '2011-01-10 12:40:06', NULL, '13.jpg'),
(14, 3, '2011-01-10 12:40:06', NULL, '14.jpg'),
(15, 3, '2011-01-10 12:40:06', NULL, '15.jpg'),
(16, 4, '2011-01-10 12:40:06', NULL, '16.jpg'),
(17, 4, '2011-01-10 12:40:06', NULL, '17.jpg'),
(18, 4, '2011-01-10 12:40:06', NULL, '18.jpg'),
(19, 4, '2011-01-10 12:40:06', NULL, '19.jpg'),
(20, 4, '2011-01-10 12:40:06', NULL, '20.jpg'),
(21, 5, '2011-01-10 14:02:11', NULL, '21.jpg'),
(22, 5, '2011-01-10 14:02:11', NULL, '22.jpg'),
(23, 5, '2011-01-10 14:02:11', NULL, '23.jpg'),
(24, 5, '2011-01-10 14:02:11', NULL, '24.jpg'),
(25, 5, '2011-01-10 14:02:11', NULL, '25.jpg'),
(26, 6, '2011-01-10 14:02:11', NULL, '26.jpg'),
(27, 6, '2011-01-10 14:02:11', NULL, '27.jpg'),
(28, 6, '2011-01-10 14:02:11', NULL, '28.jpg'),
(29, 6, '2011-01-10 14:02:11', NULL, '29.jpg'),
(30, 6, '2011-01-10 14:02:11', NULL, '30.jpg'),
(31, 7, '2011-01-10 14:02:11', NULL, '31.jpg'),
(32, 7, '2011-01-10 14:02:11', NULL, '50.jpg'),
(33, 7, '2011-01-10 14:02:11', NULL, '32.jpg'),
(34, 7, '2011-01-10 14:02:11', NULL, '33.jpg'),
(35, 7, '2011-01-10 14:02:11', NULL, '34.jpg'),
(36, 8, '2011-01-10 14:02:11', NULL, '35.jpg'),
(37, 8, '2011-01-10 14:02:11', NULL, '36.jpg'),
(38, 8, '2011-01-10 14:02:11', NULL, '37.jpg'),
(39, 8, '2011-01-10 14:02:11', NULL, '38.jpg'),
(40, 8, '2011-01-10 14:02:11', NULL, '39.jpg'),
(41, 9, '2011-01-10 14:02:11', NULL, '40.jpg'),
(42, 9, '2011-01-10 14:02:11', NULL, '41.jpg'),
(43, 9, '2011-01-10 14:02:11', NULL, '42.jpg'),
(44, 9, '2011-01-10 14:02:11', NULL, '43.jpg'),
(45, 9, '2011-01-10 14:02:11', NULL, '44.jpg'),
(46, 10, '2011-01-10 14:02:11', NULL, '45.jpg'),
(47, 10, '2011-01-10 14:02:11', NULL, '46.jpg'),
(48, 10, '2011-01-10 14:02:11', NULL, '47.jpg'),
(49, 10, '2011-01-10 14:02:11', NULL, '48.jpg'),
(50, 10, '2011-01-10 14:02:11', NULL, '49.jpg');
Сам код для меню галерей:
/**
* Limit of viewing of images for the menu of galleries
* Лимит просмотра изображений для меню галерей
*/
define('LIMIT_VIEW_IMG_GALLERIES', 4);
/**
* Quantity of galeries on page
* Количествой галерей на странице
*/
define('NUM_GALLERIES_ON_PAGE', 3);
/**
* Connection
* Подключение
*/
include './mysql.php';
/**
* Construction of galleries with viewing by images
* Построение галерей с превьюв изображениями
*/
$start = gettimeofday();
$page = !empty($_GET['page']) ? (int)$_GET['page'] : 1;
include './irb_paginator.php';
$paginator = new IRB_Paginator($page, NUM_GALLERIES_ON_PAGE);
$res = $paginator->countQuery("SELECT * FROM `galleries`");
$navigation = $paginator->createMenu();
while($row = mysql_fetch_assoc($res))
{
$res2 = mysqlQuery("SELECT `aid`, `fname`
FROM `images`
WHERE `aid` = " .$row['id']. "
ORDER BY RAND()
LIMIT " . LIMIT_VIEW_IMG_GALLERIES);
$row['date'] = $row['date'];
$row['title'] = htmlspecialchars($row['title']);
$row['description'] = htmlspecialchars($row['description']);
echo "\t" .$row['date'].
"\n\t<h2>" .$row['title'].
"</h2>\n\t" .$row['description']. "<br>";
for($i = 1; mysql_num_rows($res2) >= $i; $i++)
{
$row_img = mysql_fetch_assoc($res2);
$row['img'.$i] = '<img src="/images/' .$row_img['fname']. '">';
echo "\n\t" .$row['img'.$i];
}
echo "<br><hr>\n\n";
}
$end = gettimeofday();
$time = (float)($end['sec'] - $start['sec']) + ((float)($end['usec'] - $start['usec'])/1000000);
echo $time . "\n";
Поосуждайте меня пожалуйста...
Может будут замечания по оптимизации...
Спустя 2 часа, 10 минут, 49 секунд (10.01.2011 - 18:46) Evilsoul написал(а):
Продолжение: вывод полной галереи
if(empty($_GET['gallery']))
{
//Выше
}
else
{
echo 'Галерея: ' . $_GET['gallery']. "<br><br>";
$res = mysqlQuery("SELECT `aid`, `date`, `subtitle`, `fname`
FROM `images`
WHERE `aid`=" .$_GET['gallery'].
" ORDER BY `id`");
while($row = mysql_fetch_assoc($res))
{
$row['date'] = $row['date'];
$row['subtitle'] = /*htmlspecialchars($row['subtitle'])*/ 'Подпись фото';
$row['img'] = htmlspecialchars($row['fname']);
$row['url'] = '?page=1';
echo "\n\n\t" .
'<div align="center" style="float:left; margin-right:10px; padding:3px; border:1px solid #09f;">
<a href="' .$row['url']. '">
<img src="./images/' .
$row['fname']. '">'.
"\n\t<br><span>" .
$row['subtitle'] .
"</span><br>\n\t" .
$row['date']. "<br></div></a>";
}
}
Спустя 13 минут, 54 секунды (10.01.2011 - 19:00) Игорь_Vasinsky написал(а):
Цитата |
cover - Кавер (обложк0) галереи count - кол-во фоток show - показ выбранной галереи maxphotos - |
cover - Кавер - тебе не надо - раз ты рандом по 4е превьюшки выводишь из галереи
count - кол-во фоток в данной галереи
show - показ выбранной галереи ???????? понятя не имею
maxphotos - максимально допустимое кол-во фоток в данной галлереи.... не знай зачемон предложил это.
Спустя 1 минута, 26 секунд (10.01.2011 - 19:02) Игорь_Vasinsky написал(а):
тока зачем код то выводить.. ещё и чужой шаблон.
если всё работает то.
если всё работает то.
Спустя 1 час, 21 минута, 52 секунды (10.01.2011 - 20:23) nugle написал(а):
Цитата |
show - показ выбранной галереи ????????понятя не имею |
Это скорее типа 0-не пока3ывать
1-пока3ывать..наверно так
Спустя 2 часа, 55 минут, 2 секунды (10.01.2011 - 23:18) Evilsoul написал(а):
Игорь_Vasinsky
Спасибо за толкование
Какой же он чужой, сегодня с нуля своими рученьками написал
Здесь я использую навигацию из уроков IRBIS - team и конфигу mysql.
Всё работает, а вывожу для того, что бы те кто лучше знает ПШП могли указать на недостатки и оптимизацию кода...
nugle
Наверное ты прав, нужно подумать над этим, нужно ли оно...
Завтра хочу продолжить если будет время...
Спасибо за толкование
Какой же он чужой, сегодня с нуля своими рученьками написал
Здесь я использую навигацию из уроков IRBIS - team и конфигу mysql.
Всё работает, а вывожу для того, что бы те кто лучше знает ПШП могли указать на недостатки и оптимизацию кода...
nugle
Наверное ты прав, нужно подумать над этим, нужно ли оно...
Завтра хочу продолжить если будет время...
Спустя 11 часов, 39 минут, 2 секунды (11.01.2011 - 10:57) Evilsoul написал(а):
Мне оч. нравятся из уроков одна функция (parseTpl), думаю ей здесь самое место.
Спустя 58 минут, 59 секунд (11.01.2011 - 11:56) Evilsoul написал(а):
Прошу прощения, ну совсем тупой ...
Какая функция может обрезать время из этой строки.
$date = '2011-01-10 12:38:27';
Какая функция может обрезать время из этой строки.
Спустя 4 минуты, 59 секунд (11.01.2011 - 12:01) Evilsoul написал(а):
Сделал так:
echo substr($date, 0, 10) . '<br>';
_____________
Кто хочет, ищет возможности, кто не хочет - причины. /_ К. Маркс
Истенно велик тот человек который сумел овладеть своим временем. /_Гесиод VIII-VII вв. до Р. Х.
Медлительный непрерывно борится с бедами всю жизнь. /_Гесиод VIII-VII вв. до Р. Х.
Для того что бы увидеть радугу нужно пережить дождь.
Женщины: Хочется чего-то красного но синего.