Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
1
MySQL

Частичная замена данных в Бд

25.12.2018, 15:23. Показов 840. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые форумчане. Такой вопрос к вам. Подскажите, пожалуйста, как лучше всего организовать такую вещь:
У меня на сайте пользователь к комментариям может прикреплять гифки со сторонних ресурсов. Дабы гифки не воспроизводились сразу, я скачиваю эти гифки (при добавлении каммента пользователем) во временную папку и делаю скриншот первого кадра. И таким образом получаю возможность отображать картинку, а при клике по ней - замену на оригинальную гифку, но уже на моем сервере которая.
Так вот. Сообщения раз в двое суток уходят в архив (его можно просматривать) и эти гифки уже особо никому не нужны и чтобы место не занимать на сервере, я хочу их раз в двое суток удалять и вместо ссылок на мой сервер менять ссылки на оригинальный ресурс. Чтобы картинки не были битыми и продолжали работать и в архиве.
Вот оттуда и вопрос, а как лучше это сделать?
При сохранении картинки на сервер я в заношу в БД данные о картинке:
Частичная замена данных в Бд

Т.е оригинальный адрес и дата добавления имеются.
Потом нужно сделать выборку из таблицы с комментариями где в тексте сообщения есть тег [img]http://site.ru/TmpGif/гифки-котэ-бармен-4552713.gif[/img] с вложенной ссылкой на мой сервер и заменить её на оригинальную внутри тега.
Прошу совета, как это лучше сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2018, 15:23
Ответы с готовыми решениями:

Частичная замена адреса картинки при наведении (замена src при hover)
Доброго! Задача следующая - при наведении на картину нужно изменить в адресе картинки с image.png...

Обновка или частичная замена!
Мне нужно сделать апгрейд своего пк. Для программирования(Unity3d,visual studio,Photoshop...) и для...

Частичная замена дизайна почтовой базы
Добрый день У пользователя был обновлен дизайн почтовой базы. В базе было много папок созданных...

Частичная замена ПК на AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
Добрый день. На данный момент имею следующий конфиг: Системная плата: Gigabyte GA-M57SLI-S4 ...

10
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.12.2018, 16:01 2
PHP
1
2
3
4
5
6
if ($comment->isArchive()) {
   $link = $comment->originLink;
}
else {
  $link = $comment->newLink;
}
Цитата Сообщение от MirDj Посмотреть сообщение
Потом нужно сделать выборку из таблицы с комментариями где в тексте сообщения есть тег с вложенной ссылкой на мой сервер и заменить её на оригинальную внутри тега.
Прошу совета, как это лучше сделать?
Посмотрите функции для работы со строкам. Вообще мне кажется у вас что-то не так с алгоритмом, наверняка можно сделать проще.
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
25.12.2018, 16:15  [ТС] 3
tarasalk, мне не надо выводить средствами php ту или иную ссылку... В течении 2-х дней пока сообщение (отдельная таблица с сообщениями - comments, поле text) доступно всем пользователям то ссылка на картинку в сообщении ( в БД ) должна быть на мой сервер (заносится сразу при создании комментария), а как сообщение уходит в архив, то ссылку в БД нужно перезаписать на ссылку от первоисточника и файлы со своего сервера я удалю

Добавлено через 9 минут
Т.е есть таблица с данными о гифке, а есть таблица с сообщениями... И Допустим пользователь оставил комментарий:
Тут какой-то текст бла-бла [img]http://site.ru/TmpGif/гифки-котэ-бармен-4552713.gif[/img] затем картинка и снова может быть текст. А может и просто быть только картинка
Проходит 2 дня. Я по таблице с гифками, та что на скриншоте ищу "просроченные", старше 2-х дней гифки.
И в таблице comments нужно найти сообщение где используется ссылка http://site.ru/TmpGif/гифки-ко... 552713.gif и заменить её на оригинальную, та что указана в таблице с данными о гифке
0
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.12.2018, 16:28 4
Цитата Сообщение от MirDj Посмотреть сообщение
мне не надо выводить средствами php ту или иную ссылку.
Где вы в моем коде увидели вывод? Этот код для получения актуальной ссылки.

Всё что вы написали я понял и с первого раза. Ответ тот же: работа со строками. Обычный replace.
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
25.12.2018, 16:36  [ТС] 5
Цитата Сообщение от tarasalk Посмотреть сообщение
Этот код для получения актуальной ссылки.
А где Вы видели что я спрашивал как получить актуальную ссылку? Все ссылки необходимые хранятся в таблице с данными о гифке. Как их вывести я знаю. Вопрос был о другом.
Спасибо. Ваш ответ про регулярки я понял. Но ответ не полный. По крайней мере для меня.
Есть несколько этапов. Как минимум.
Поиск корректный сообщения, в котором нужно заменить ссылку.
Потом правильная замена.
Так вот, почему я спросил. Может это все можно было бы и просто запросами сделать. Но теперь я так полагаю что все-таки нет? Только искать запись типа
Код
where text LIKE = '%http://site.ru/TmpGif/гифки-котэ-бармен-4552713.gif%'
потом регулярками менять ссылки и уже делать в базе update.
Только вот насколько это все серверу будет легко обрабатывать по такому алгоритму?
0
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.12.2018, 17:06 6
Цитата Сообщение от MirDj Посмотреть сообщение
А где Вы видели что я спрашивал как получить актуальную ссылку?
Цитата Сообщение от MirDj Посмотреть сообщение
а как лучше это сделать?
Каков вопрос таков ответ.

Цитата Сообщение от MirDj Посмотреть сообщение
Может это все можно было бы и просто запросами сделать. Но теперь я так полагаю что все-таки нет? Только искать запись типа
mysql тоже умеет replace делать.
Цитата Сообщение от MirDj Посмотреть сообщение
Только вот насколько это все серверу будет легко обрабатывать по такому алгоритму?
Ну естественно тяжело. Я бы делал замену при выводе, а не в БД.
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
25.12.2018, 17:25  [ТС] 7
Цитата Сообщение от tarasalk Посмотреть сообщение
Каков вопрос таков ответ
Ну вроде бы все объяснил. Разве я написал просто как лучше сделать? Подробно описал.
Цитата Сообщение от tarasalk Посмотреть сообщение
Я бы делал замену при выводе, а не в БД.
Тогда нужно будет навечно хранить данные об этих гифках. А накой это надо?
0
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.12.2018, 17:54 8
Цитата Сообщение от MirDj Посмотреть сообщение
Тогда нужно будет навечно хранить данные об этих гифках. А накой это надо?
Зачем навечно? Только 2 дня.

Еще раз.
У вас есть оригинальный комментарий "Текст ссылка1". Вы его как есть сохраняете в БД. В отдельной табличке. сохраняете что в таком то комменте вместо "ссылка 1" надо показывать "ссылка 2".
Дальше при выводе коммента у вас стоит проверка - если коммент в архиве, то показывать оригинальное сообщение, иначе сделать замену ссылки(если она есть)
Через 2 дня сработает крон и удалит устаревшие ссылки.
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
25.12.2018, 18:02  [ТС] 9
Цитата Сообщение от tarasalk Посмотреть сообщение
сохраняете что в таком то комменте вместо "ссылка 1" надо показывать "ссылка 2".
Информации о комментарии нет никакой. Потому как гифка на сервер заливается в момент создания комментария, когда пользователь еще только формирует сообщение в редакторе bbcode. Когда он вставляет ссылку в редактор на картинку, если это гиф, то аяксом идет запрос к файлу php с указанием ссылки на файл. И файл скачивается, а в таблицу заносятся указанные на скриншоте данные. И в редактор возвращается уже ссылка на картинку с моего сервера. Затем пользователь продолжает формировать каммент и отправляет его потом.
Цитата Сообщение от tarasalk Посмотреть сообщение
Дальше при выводе коммента у вас стоит проверка
Нет. Есть 2 таблицы. Одна с камментами, а другая с архивными камментами (структура таблиц идентична), они туда перемещаются по крону раз в двое суток.
А на страницу камментов выводятся обычные сообщения. А просмотр архива организован отдельно. По запросу, скажем так.
0
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.12.2018, 19:27 10
Цитата Сообщение от MirDj Посмотреть сообщение
И в редактор возвращается уже ссылка на картинку с моего сервера.
В чем проблема возвращать оригинальную ссылку?

Цитата Сообщение от MirDj Посмотреть сообщение
Нет. Есть 2 таблицы.
Что нет? Я вам расписал как лучше сделать. Вы же зачем то рассказываете свою костыльную реализацию, из за которой и возникла проблема. Если вам просто лень переделывать, то так и скажите. Мне собственно фиолетово)
0
3 / 3 / 2
Регистрация: 16.01.2013
Сообщений: 471
25.12.2018, 20:18  [ТС] 11
Цитата Сообщение от tarasalk Посмотреть сообщение
В чем проблема возвращать оригинальную ссылку?
Накой ляд мне её возвращать? Мне нужна именно ссылка на мой сервер!!!
Цитата Сообщение от tarasalk Посмотреть сообщение
Я вам расписал как лучше сделать. Вы же зачем то рассказываете свою костыльную реализацию
В чем костыль? Уж если такие слова говорите, тогда поясняйте, а то голословно просто чего-то писать, каждый может.
Цитата Сообщение от tarasalk Посмотреть сообщение
Если вам просто лень переделывать, то так и скажите
Что переделывать-то? У меня все правильно. А то что Вы мне советуете, у меня складывается впечатление, что хоть вы и кичились что все поняли с первого раза, а по факту не поняли нифига, а оттуда и нервы. Раз фиолетово, то поберегите свои нервы и мои. Спасибо за то что откликнулись, но видимо мы так и не поймем друг друга, а переходить на личности и "сраться" я не намерен. Не для этого сюда пришел. Подожду совет от других знатоков
0
25.12.2018, 20:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2018, 20:18
Помогаю со студенческими работами здесь

Поиск и замена данных из значений разных ячеек, с учетом порядка данных
Здравствуйте уважаемые форумчане, очень нужна ваша помощь... Есть КОД детали спецтехники типа...

Замена полей баз данных в целях защиты данных
Zdrastvujte! Zadanije vopshem interesnoje. Jest baza danih,tablici. Nekotorije pola tablici nado...

Киносеанс - хранение данных, замена данных, добавленных новых
Вообщем задача : На киносеанс популярного кинофильма осуществляетсябронирование билетов. С помощью...

PHP и работа с базой данных (замена данных)
Добрый вечер. Начал ознакомление с бд. Создал ее + таблицу, написал добавление через форму, теперь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru