LINUX.ORG.RU

Прошу помощи зала! Две базы - два массива картинок, нужно две базы - один массив

 ,


1

1

Приветствую!

Есть два интернет-магазина, хостятся на одном хостинге, используют две почти одинковых MySQL базы, картинки товаров имеют уникальные и одинаковые для обеих баз индексы, но эти картинки продублированы каждой базы.

Вопрос - как сделать силами SQL так, чтобы депозитарий с картинками был один, а разные базы брали бы их из одного места соответсвенно наличию товара.

Картинок очень много, тысяч тридцать; запрос на выдачу формируецца х знает где и каким скриптом. Можно ли где в базе посмотреть и заново переписать пути к картинкам?

Спасибо заранее!


Я ни в базах данных, ни, тем более, в MySQL ничего не понимаю, но нашёл такую ссылку: http://stackoverflow.com/questions/5698378/mysql-join-between-tables-in-2-dif...

Запросы в скриптах придётся переписать. Ты можешь грепнуть скрипты по имени таблицы с картинками, чтобы найти эти места.

anonymous
()

Картинок очень много, тысяч тридцать;

Это немного.

Можно ли где в базе посмотреть и заново переписать пути к картинкам?

Мой внутренний телепат говорит что можно, но ты не предоставил даже структуру бд.
Изображения так же дублируются в фс?

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

А что такое ФС? (я чайник-самоучка)

Видимо да, изображения дублируются Нашёл РНР файл, он отвечает за наполнение базы, вот кусок, кот. отвечает за картинки. Может просто переписать текст с указанием пути?

<tr> <td align=right><?php echo ADMIN_PRODUCT_PICTURE;?></td> <td><input type=«file» name=«picture»></td> <tr><td></td><td> <?php if ($row[5]!=«» && file_exists("./products_pictures/".$row[5])) { echo «<a class=small href=\„products_pictures/“.$row[5].»\«>$row[5]</a>\n»; echo «<br><a href=\„javascript:confirmDelete('“.QUESTION_DELETE_PICTURE.»','products.php?productID=".$_GET[«productID»].«&picture_remove=5');\»>".DELETE_BUTTON.«</a>\n»; } else echo «<font class=average color=brown>».ADMIN_PICTURE_NOT_UPLOADED.«</font>»; ?> </td> </tr> <tr> <td align=right><?php echo ADMIN_PRODUCT_THUMBNAIL;?></td> <td><input type=«file» name=«thumbnail»></td> <tr><td></td><td> <?php if ($row[7]!=«» && file_exists("./products_pictures/".$row[7])) { echo «<a class=small href=\„products_pictures/“.$row[7].»\«>$row[7]</a>\n»; echo «<br><a href=\„javascript:confirmDelete('“.QUESTION_DELETE_PICTURE.»','products.php?productID=".$_GET[«productID»].«&picture_remove=7');\»>".DELETE_BUTTON.«</a>\n»; } else echo «<font class=average color=brown>».ADMIN_PICTURE_NOT_UPLOADED.«</font>»; ?> </td> </tr> <tr> <td align=right><?php echo ADMIN_PRODUCT_BIGPICTURE;?></td> <td valign=top><input type=«file» name=«big_picture»></td> <tr><td></td><td valign=top> <?php if ($row[8] && file_exists("./products_pictures/".$row[8])) { echo «<a class=small href=\„products_pictures/“.$row[8].»\«>$row[8]</a>\n»; echo «<br><a href=\„javascript:confirmDelete('“.QUESTION_DELETE_PICTURE.»','products.php?productID=".$_GET[«productID»].«&picture_remove=8');\»>".DELETE_BUTTON.«</a>\n»; } else echo «<font class=average color=brown>».ADMIN_PICTURE_NOT_UPLOADED.«</font>»; ?> </td> </tr>

ivart
() автор топика
Ответ на: комментарий от ritsufag

Вот, скажем

echo «<a class=small href=\„products_pictures/“.$row[5].»\«>$row[5]</a>\n»;

если переписать \«products_pictures/» на \«site2/shop/products_pictures/» как-то так - должно заработать?

ivart
() автор топика

выполни команду в консоли man grep - выведет справку по программе grep. выйти из справки - q

в твоём случае подойдёт

fgrep -rin 'имя_таблицы_или_лучше_столбца' /путь/к/папке/сайта

anonymous
()
Ответ на: Вот, скажем от ivart

Нет, ты даешь по сути абсолютный путь за пределами публичной директории, которую обслуживает вебсервер.
У меня нет полной картины, но поменять пути в шаблоне самый простой вариант.

ritsufag ★★★★★
()
Ответ на: Вот, скажем от ivart

Могу посоветовать только одно -

сделай бэкапы всего!

pi11 ★★★★★
()

Замаунти разные папки из настроек двух баз на одну физическую

bvn13 ★★★★★
()

а если в mysql-базе не держать картинки ?

anonymous
()

ЯННП, но можно сделать один склад с именами в виде md5/sha256/etc-хешей и хренакнуть update по всем базам.

Radjah ★★★★★
()
Ответ на: комментарий от ritsufag

Спасибо, но кк это сделать?

Поменять пути в шаблоне?

ivart
() автор топика

Просто настрой nginx под статику, чтобы картинки раздавались по разным url из одного места. Чего уж проще.

darv
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.