![]() |
Фотогалерея на PHP и MySQL
Мне нужно сделать скрипт фотогалереи, чтобы к каждой фотке был комментарий, название и некоторые параметры, и чтобы можно было оценивать фотки, и чтобы можно было все это сортировать по любому параметру. Подскажите, плз, как это лучше сделать?
![]() И вот еще, как лучше сделать для нескольких разрешений хранить несколько копий фотографии в разных разрешениях или одну в максимальном и при выборе разрешения, чтобы PHP фотку ресайзил? Мне больше нравиться второй вариант из-за экономии места, я примерно представляю как это сделать, но только примерно ![]() |
Plutonium 239
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Кто-нибудь подскажите почему эта строчка
PHP код:
Цитата:
|
Пишет, что не существует такого класса, видимо файлик с определением этого класса надо подсоединить к скрипту
А направление можно примерно такое задать, в базе хранить только имена картинок(либо полный путь к ним, но лучше просто имена тогда папки с картинками лечге менять будет), а все варианты (то есть большая и маленькая картинка), должны знать скрипты, то есть просто создаём маленькую картинку с тем же самым именем, что и основная и храним в спец папке (типа "little_img"). Могу посоветовать кеш систему ввести, чтобы каждый раз одни и теже картинки размеры не изменять, сохранять разные варианты картинок (наиболее часто просматриваемых) отдельно, то есть скрипт сначало смотрит в папку с созданными картинками, и если там ничего не находит, то идёт уже работать над основной |
Цитата:
Вариант предложенный vadimiron лучше. Насколько я понял mysqli создано для PHP5, оно есть на хостинге? Скорее всего там PHP4. А значит надо использовать mysql Хотя если ты взял готовую систему, тогда надо было выбрать другой файл для базы. |
Цитата:
Вот такая таблица у меня получилась: PHP код:
Цитата:
|
Переделал код, но все равно не работает:( Пишет, что все нормально, один ряд добавлен, а в базе ничего не меняется:( В чем здесь ошибка?
PHP код:
|
Я был не прав. Вот небольшая статья о mysqli http://phpclub.ru/detail/article/mysqli
Цитата:
Цитата:
http://dev.mysql.com/doc/refman/4.0/ru/char.html Цитата:
Хотя может http://php.rinet.ru/manual/ru/function.mysql-error.php было бы правильнее. |
Переправил
PHP код:
PHP код:
Цитата:
PHP код:
Цитата:
Еше нужно преобразовать дату из любого формата в формат MySQL, сделал вот так PHP код:
|
Цитата:
Цитата:
"1.jpg" в varchar(255) будет занимать 5 байт, а в char(50) ----> 50 б... а 255 это максимальная длинна записи... поправте меня если я не прав |
Цитата:
|
ImageDestroy() не забудь в таком случае.
|
Подскажите как сделать рейтинк картинок? Около кажной картинки 5 ссылок: от очень плохо до очень хорошо, как все это расчитывать чтобы получился грамотный рейтинг, а то у меня кроме средного бала ничего не выходит:(
|
Как сделал бы я:
В таблице фотографий добавил 2 поля - Mark и TotalVote. При выводе результата(рейтинга) округлял цисло содержащееся в Mark и сравнивал его: если 1 - ужасно, 2 - плохо, 3 - ..... и т.д. При голосовании, в переменные om и ov - содердимое тех полей ms = om*ov; ms = om + <новая оценка>; nv=ov+1;//добавляем 1 к проголосовавшим nm = ms/nv; // вычисоляем среднее арифметическое nm & nv - в таблицу. Или чтобы не заниматся округлением в таблице можно сделать типы полей INT Есть другой вариант - сделать графический рейтинг(полоска с градиентом от красного - до зеленого)... немного ложнее, но красивше... |
Я бы наверно сделал бы отельную таблицу с рейтингами, то есть ID картинки, ID юзера и выбранный рейтинг
Потом просто выбираем картинку которая нужна, и уже делим или суммируем, короче всё что угодно, также можно вывести статистику, сколько процентов каждый из рейтингов был выбран для той картинки, например сколько 2-ек или сколько 5-ок Так как чаще всего сумма поделённое на количество нужно, я бы сделал VIEW, где бы хранил уже вычисленные средние значения, в 5-ом MySQL возможно даже такое можно автоматизировать с помощью тригеров, но здесь я уже не специалист..... |
Сделал отдельно систему оценок и систему рейтинга. К таблице фоток добавил три поля: общая оценка, количество проголосовавших и рейтинг.
По количеству проголосовавших и общему количеству балов расчитывается средняя оченка. Оценка выставляется от -1 до 1, и прибавляется к значению поля рейтинга, потом по нему тоблица сортируется. А для его отображения расчитывается процентный рейтинг PHP код:
А показывается все так: ![]() |
Чего-то я ни фига не врубился в рейтинг ...
И как - оценка выставляется от -1 до 1, а средний балл - 6.46 |
Цитата:
Просто там балы отдельно от рейтинга. Балы выставляются 2-4-6-8-10 ужастно-плохо-средне-хорошо-отлично рейтинг -1 -0,5 0 0,5 1 соответственно. Если за картинку проголосует один чел на отлично у нее средний бал будет 10, а ретинг ~50%. Может и дизайн за одно зацените :shuffle: он правда по шаблону сделан, на большее времени нет http://i29.photobucket.com/albums/c2...9/08bea896.jpg |
Почему 50%? А 100% когда будет?
|
Цитата:
вопрос по дизайну: у меня есть два файла header.inc и footer.inc в них везде прописаны пути к картинкам так img/****.gif а подразделы находятся в разных каталогах и в них картинки не работают, как можно сделать чтобы пути в этих файлах менялись в зависимости от того где находится файл в который они вставлены. |
плясать от начала сайта
<img src="../image/ .... > ../ либо пересмотреть скрипты, переместив их все в одну папку http://www.htmlbook.ru/content/?id=9 |
Plutonium 239
используй абсолютные пути, папка с картинками у тебя же не меняется создай файл с константами, который будет инклудится в каждый скрипт там создай константу, типа SITE_ROOT, значение которой является $_SERVER['DOCUMENT_ROOT'] и ещё что то, если сайт лежит не в самом 'DOCUMENT_ROOT', далее нужна константа с путём к картинка, например define("IMG_DIR",SITE_ROOT."/img"); и так далее тогда проблем с путями не будет Единственное, что нужно будет менять при изменении места жительства скрипта, так это путь от скрипта до файла, где определены все эти константы ---------------------------------------------------------------------------------------- Я честно говоря тоже не до конца понимаю твою систему рейтинга Нельзя ли просто каждый раз брать текущий средний рейтинг, приплисовывать к нему только что выбранный юзером и делить потом эту сумму на два, это и будет твой новый рейтинг с учётом нового голоса Цитата:
100% эта картинка, у которой все отданные голоса равны максимальному значению, то есть если у тебя оценки от 1 до 5, то 100%-это когда все юзеры отдали 5 за данную фотку, соответственно и среднее значение будет 5 |
если ты пути используешь html а не в php тогда можно потупить проще вместо "img/***.gif" написать "/img/***.gif" и тогда эти пути будут работать правильно реботать, но это только в html ....
|
Цитата:
Скажем по ТВ - 100% это вся аудитория, рейтинг передачи - это сколько человек смотрит передачу (в %) vadimiron А зачем так все усложнять с путями? |
Цитата:
Тоже самое относится если меняем путь к папке с картинками По-настоящему, это не закон, а стиль программирования, который иногда облегчает жизнь Цитата:
|
Цитата:
Цитата:
Рейтинг используется только для сортировки, если сортировать по среднему далу получается некорректно. Допустим за 1 картинку проголосовало 10 человек все на 10 балов, средний бал будет 10. А за другую проголосовала 100 человек, 99 на 10 балов, а один на 8, средний бал будет 9,98. А рейтинг это просто общая сумма голосов за эту картинку. Цитата:
|
Цитата:
|
вот еще вопрос по той же теме
как определить картинку с максимальным рейтингом в каждом разделе, у мненя получилось только так, но это работает неправильно PHP код:
|
Код:
SELECT |
Prisoner
Цитата:
|
Plutonium 239
То есть выяснить для каждой категории, какая картинка из данной категории имеет самый высокий рейтинг?? |
Plutonium 239
Prisoner Для такой задачи необходима возможность задания запроса в запросе, или JOIN запроса, а не всей таблицы. Боюсь, что это задача не для mysql и надо с ней справляться mysql+php |
Цитата:
mar Цитата:
|
А так не пройдёт???
PHP код:
|
vadimiron
Цитата:
|
Цитата:
|
Время: 12:28. |
Время: 12:28.
© OSzone.net 2001-