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

Форум PHP

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

 

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

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

тема: Как динамически выводить теги alt и title
 
 автор: luserz   (23.05.2011 в 17:47)   письмо автору
 
 

Ситуация состоит в следующем.Я написал скрипт вывода картинки динамически из папки по 5 картинок в ряд.Как ПРИКРУТИТЬ К ЭТОМУ КОДУ динамический вывод к каждой из этих картинок alt и title.


<?php
$dir='images/katera/plastic/'.$myrow['fotop'].'/';
$i=0;
if ($handle = opendir($dir))
{

while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
echo "<a id='thumb1' href='images/katera/plastic/".$myrow['fotop']."/".$file."' class='highslide' onclick='return hs.expand(this)'><img border='0' src='images/katera/plastic/".$myrow['fotopthumb']."/".$file."' width='61' height='61' class='highslide' title='Нажмити для увеличения'></a>";
$i++;
if ($i >= 5) {echo "<br>"; $i=0;}
}
}

closedir($handle);
}
?>

  Ответить  
 
 автор: Valick   (23.05.2011 в 18:02)   письмо автору
 
   для: luserz   (23.05.2011 в 17:47)
 

динамический вывод в моем понимании это при использовании AJAX
у Вас же вроде обычный тег img
title='Нажмити для увеличения'
не отображается?
каким браузером проверяете?
__
у Вас динамическое формирование HTML-кода, это немножко другое

  Ответить  
 
 автор: cheops   (23.05.2011 в 18:04)   письмо автору
 
   для: luserz   (23.05.2011 в 17:47)
 

Насколько видно из кода, тэг title уже заполнен. А где находится источник alt и title-записей? Массив $myrow откуда берется и что содержит?

  Ответить  
 
 автор: luserz   (23.05.2011 в 18:51)   письмо автору
 
   для: cheops   (23.05.2011 в 18:04)
 

Да верно заполнен, но не тем!Надо под каждую фотку сделать свой title!Я вот и думаю откуда их взять...можно под каждую папку с фотографиями сделать txt документ в котором будет к примеру 20 alt прописано.php код должен брать тег alt из txt документа и подставлять к определенной фотографии!Сайт сгенерирован php и данные берутся из mysql. делать в mysql отдельное поле для каждой фотографии накладно и в каждой папке разное кол-во фотографий .Можно ли также подсасывать эти alt'ы из папки грубо говоря...так же как и фото???И каким боком это можно ваплотить??

  Ответить  
 
 автор: cheops   (23.05.2011 в 18:57)   письмо автору
 
   для: luserz   (23.05.2011 в 18:51)
 

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

Да можно предумотреть текстовый файл в котором описанию фотографии будет сопоставлен её номер (или путь) из базы данных. Однако, мне всегда казалось, что удобнее такие данные размещать именно в базе данных. Файл нужно открывать, разбирать, перед этим составлять, сверяясь с базой данных...

  Ответить  
 
 автор: Valick   (23.05.2011 в 19:00)   письмо автору
 
   для: cheops   (23.05.2011 в 18:57)
 

еще один плюс хранения алтьов и тайтлов в базе - это то что можно отсортировать фотографии по ним (если понадобиться)
два поля в таблице абсолютно не помешают
минусов ноль
плюсов уйма
___
работа с текстовыми файлами - для мазохистов :)

  Ответить  
 
 автор: luserz   (23.05.2011 в 19:15)   письмо автору
 
   для: cheops   (23.05.2011 в 18:57)
 

Суть в том что, фотографии хранятся не в таблице, а в папке.Код подставляет только название этой папки в которой хранятся фото, и она вытягивает динамически их все по 5 в ряд.Нужно чтобы к каждой фотографии был свой alt.C базой данных они не как не связаны!Вот пример http://www.nordbriz.com/lodka_alum_wellboat_opis.php?id=3.Под главной фотографией!

  Ответить  
 
 автор: Valick   (23.05.2011 в 19:36)   письмо автору
 
   для: luserz   (23.05.2011 в 19:15)
 

$myrow['fotop'] - это что? папка? и она не из базы?

  Ответить  
 
 автор: luserz   (23.05.2011 в 19:38)   письмо автору
 
   для: Valick   (23.05.2011 в 19:36)
 

сюда подставляется название папки где лежат эти фотографии.Он их пакетно выводит в цикле.Как каждой из фотографии задать свой тайтл в этом же цикле!?

  Ответить  
 
 автор: luserz   (23.05.2011 в 19:39)   письмо автору
 
   для: luserz   (23.05.2011 в 19:38)
 

Название папки лежит в базе...сама папка лежит на серваке!

  Ответить  
 
 автор: Valick   (23.05.2011 в 19:47)   письмо автору
 
   для: luserz   (23.05.2011 в 19:39)
 

то что она на серваке это "ежу понятно" :)
а текст изобилующий восклицательными знаками признак дурного тона при сетевом общении
на лицо неверный подход к хранению фото

в Вашем случае действительно лучше создать папки alt и title в папке $myrow['fotop']
(и в папке $myrow['fotopthumb'] если к ноготкам нужны отдельные альт и тайтл)
имена файлов будут идентичными с именами фото
хотя в любом случае гемор обеспечен изначально
и дело не в том что я такой бяка и мне ненравиться Ваш (или не Ваш) подход
в общей сложности нужно каждый раз будет открывать и закрывать 10...20 файлов
а это не очень большая, но всетаки лишняя нагрузка на сервак
а если хранить все в одном файле, то замороч будет с установлением связи
чей это альт или тайтл и к какой фотке его прилепить
__
но лично я бы этого не делал, а приводил все в нормальный вид
когда имена фотографий храняться в БД, там же и альты и тайтлы и еще куча нужной информации

  Ответить  
 
 автор: luserz   (23.05.2011 в 20:16)   письмо автору
 
   для: Valick   (23.05.2011 в 19:47)
 

т.е под каждый товар прописывать в базе свою фотографию, свой тайтл, свой alt.Все делать ручками?.я просто хотел ка-то это автоматизировать.А если в каждую папку сувать txt файл и он бы делал выборку из него названий, которые бы соответствовали названию картинки?Тогда это уменьшило бы кол-во работы? Если есть выриант как можно это сделать я бы выслушал?Или предложите как из этого можно положения выйти.Фотографий более 10.000 и в mysql прописывать каждую...чекнуться можно!А так закинул в папку.каким-нибудь образом в цикле вывел alt....и все?

  Ответить  
 
 автор: Valick   (23.05.2011 в 20:30)   письмо автору
 
   для: luserz   (23.05.2011 в 20:16)
 

про прописывание ручками имен фото речи вообще не идет
работа руками идет вразрез с философией программирования :)
как это сделать и сколько это стоит этот вопрос выходит за рамки данного форума

ключевое слово в ваших словах это каким-нибудь образом
Вам это кажется легким потому что Вы не имеете представления об этом
как только начнете воплощать в жизнь "хапните горя"
в принципе проблемы у Вас уже очень большие и Все от неверного подхода изначально

тут нельзя помочь двумя словами и тремя строчками кода
закономерно возникет вопрос откуда Вы будете брать альты и тайтлы к 10000 фоток и каков процент их уникальности?

  Ответить  
 
 автор: luserz   (23.05.2011 в 20:41)   письмо автору
 
   для: Valick   (23.05.2011 в 20:30)
 

Процент уникальности 80%. Я не прошу выложить тут код, как это сделать. Я хочу поинтересоваться как бы вы это сделали?Или кто-то другой!Понять какой лучший выход есть из данной ситуацией.Это же форум я общаюсь, если бы мне нужно было купить этот скрипт я бы наверно пошел к каму-нибудь программеру и заплатил, я хочу сам учиться и выходить из своих косяков делясь опытом и советом с другими!

  Ответить  
 
 автор: Valick   (23.05.2011 в 20:45)   письмо автору
 
   для: luserz   (23.05.2011 в 20:41)
 

дык об этом то и речь, процент не очень радует, это получается из 10000 фоток Вам руками придется прописать 8000*2 строк :)
___
извини я тут "бухаю" в соседнем разделе, всетаки софттайм по осени уже в школу пойдет)) 7 лет как-никак :)

  Ответить  
 
 автор: luserz   (23.05.2011 в 20:46)   письмо автору
 
   для: Valick   (23.05.2011 в 20:45)
 

так мы так и не пришли к выводу.Каким образом Вы бы реализовали эту затею?

  Ответить  
 
 автор: Valick   (23.05.2011 в 20:52)   письмо автору
 
   для: luserz   (23.05.2011 в 20:46)
 

мне сложно сказать об этом, так как я не могу вообразить объективных причин по которым я бы попал в такую ситуацию. те изначально я бы делал по- другому.
вот я и пытаюсь стать на Ваше место и хоть как-то "устаканить" образовавшуюся в голове кашу.
сколько времени у меня есть на подумать?

  Ответить  
 
 автор: luserz   (23.05.2011 в 20:56)   письмо автору
 
   для: Valick   (23.05.2011 в 20:52)
 

А как бы вы поступили бы?Время есть всегда)

  Ответить  
 
 автор: Valick   (24.05.2011 в 09:51)   письмо автору
 
   для: luserz   (23.05.2011 в 20:56)
 

вот так бы поступил я изначально:
1 вариант
таблица foto
минимум 4 поля
id_foto | name_foto | alt_foto | title_foto

(про даты создания, размеры и другую служебную инфу речь пока не идет)

потом я бы немного подумал и вынес alt и title в отделные таблицы
для экономии дискового пространства, так как изначально процент их уникальности
был бы маленьким. В последствии если процент уникальности будет переваливать за 80% можно денормализовать таблицу и вернуться к 1 варианту. (хотя это нужно будет устанавливать практически анализируя скорость работы и нагрузки скриптов)

2 вариант
таблица foto
id_foto | name_foto | id_alt | id_title

таблица alt
id_alt | alt_foto

таблица title
id_title | title_foto


___
лирическое отступление
3 вариант
если нужно к одной фотографии организовать более одного alt и title
то нужно добавить еще две промежуточных таблицы

но во всех вариантах таблица foto остается практически неизменной (хотя в 3 варианте поля id_alt | id_title нужно будет убрать) те будет сохраняться связь id_foto | name_foto
чем хороша эта связь:
1 id_foto - это уникальное число и можно добавить хоть 1000000 фотографий с одинаковым именем - это для скрипта всегда будут разные фото (даже если фотки будут физически одинаковые)
2 об уникальности именования фото голова ну никак не болит... об этом заботиться СУБД
3 id_foto можно (и нужно) использовать в качестве имени для хранения фото на диске

  Ответить  
 
 автор: luserz   (24.05.2011 в 11:16)   письмо автору
 
   для: Valick   (24.05.2011 в 09:51)
 

можно связать 2 таблицы создав еще одно поле в котором будет понятно к какой группе они принадлежат и выводить фотографии используя это созданное поле...т.е нужно будет создавать типа upload? для того чтобы он массова закидывал фотографии в папку?

  Ответить  
 
 автор: Valick   (24.05.2011 в 13:51)   письмо автору
 
   для: luserz   (24.05.2011 в 11:16)
 

не совсем понял о чем Вы толкуете

  Ответить  
 
 автор: luserz   (25.05.2011 в 10:39)   письмо автору
 
   для: Valick   (24.05.2011 в 13:51)
 

так мысли в слух. У меня еще один вопрос как лучше реализовать хранение фотографий, на этом примере? Можно ли создать одну папку и запихать туда 8.000 фотографий, как реализовано в joomle или будет большая нагрузка на сервер?Меня интересует как реализовано к примеру хранение фото на auto.ru...Это большое кол-во фото в 1 папке или они автоматом создают папки под каждую машину?Сталкивались ли вы хоть раз с этим?

  Ответить  
 
 автор: Valick   (25.05.2011 в 10:44)   письмо автору
 
   для: luserz   (25.05.2011 в 10:39)
 

нет не сталкивался, но думаю тут лучше придерживаться правила золотой середины.
под каждую машину папки создавать я бы однозначно не стал.
вообще если честно организация БД (фундамента проекта) - это большая часть работы.

  Ответить  
 
 автор: luserz   (25.05.2011 в 10:49)   письмо автору
 
   для: Valick   (25.05.2011 в 10:44)
 

Мне кажется что когда 8.000 фотографий в папке нужную тежеловато будет найти)А не подскажите где можно почитать про это фундаментальное строительство БД?

  Ответить  
 
 автор: Valick   (25.05.2011 в 16:19)   письмо автору
 
   для: luserz   (25.05.2011 в 10:49)
 

начните с нормализации баз данных (нормализации таблиц)
ну и учебник по MySQL от авторов форума не помешает (грубо говоря, точнее очень даже пригодиться ;) )
и самое главное на время изучения Вам придется забыть РНР и остальные языки программирования, знания по ним будут только мешать. Когда используется БД то РНР нужно стремиться использовать только для вывода данных в браузер, весь функционал нужно стремиться перенести на плечи СУБД

  Ответить  
 
 автор: luserz   (26.05.2011 в 15:43)   письмо автору
 
   для: Valick   (25.05.2011 в 16:19)
 

Спасибо огромное!С удовольствием прочту!

  Ответить  
Rambler's Top100
вверх

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