Перейти к содержанию
Форум поддержки пользователей VamShop

Два магазина в одну базу данных


Рекомендуемые сообщения

Привет!

Встала такая проблема. Хостер выдал только одну базу данных, а надо установить два магазина.

В других скриптах при устновке можно было поставить произвольный префикс к таблицам БД. И ставить в одну базу несколько магазинов.

Как решить эту проблему с VAM shop?

Заранее спасибо

Ссылка на сообщение
Поделиться на другие сайты

Привет!

Добавить префиксы к названиям таблиц в /includes/database_table.php и /admin/includes/application_top.php

В /install/vam.sql так же добавить префиксы.

Затем ствить магазин.

Ссылка на сообщение
Поделиться на другие сайты

Ставил.

Внимательно все проверял.

Постоянно выдется ошибка.

Может кто поделится этими файлами с прописанными префиксами.

(У кого получилось установить 2 магазина в одну базу)

Ссылка на сообщение
Поделиться на другие сайты

Что за ошибка?!

Скорей всего неправильно или не везде исправили.

Я так ставил, нормально всё.

Ссылка на сообщение
Поделиться на другие сайты

При установке птичку с Импортировать базу данных не убирали случайно!?

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

Вообще странная ошибка, сколько раз уже писали о ней, я затем заходил и устанавливал магазин как обычно и ошибки не было.

Ссылка на сообщение
Поделиться на другие сайты

>>> При установке птичку с Импортировать базу данных не убирали случайно!?

Конечно убирал! Прочитал ваш ответ в топике

http://vamshop.ru/forum/index.php?topic=1587.0

где вы пишите "Запускаете install магазина, только обязательно убираете птичку с Импортировать данные."

Сейчас галку оставил и все установилось!

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...

Мне нужно, чтобы в двух магазинах пересекалась только клиентская база. Соответственно, какие-то таблицы надо оставить общими. Попробовал добавить префиксы чисто интуитивно - не заработало :-(

Если такой вариант должен заработать - какие таблицы имеют отношение к юзерам?

Или, может быть, поставить магазины в разные базы и какой-то программушкой синхронизировать базы клиентов?

Спасеба.

Ссылка на сообщение
Поделиться на другие сайты

Во, блин.

Расставил префиксы, инсталлировал магазин (с одним глюком - не было при введении регистрационных данных в выпадающем поле списка стран, только надпись "Выберите страну!", после чего меня вместо шага 6 выкинуло на страницу "магазин на техобслуживании".

Вручную ввожу адрес второго магазина (поддомен основного сайта) - выдаётся ошибка

Warning: main(z:/home/skat-sl/latex/lang//.php) [function.main]: failed to open stream: No such file or directory in z:\home\skat-sl\latex\includes\application_top.php on line 377

Fatal error: main() [function.require]: Failed opening required 'z:/home/skat-sl/latex/lang//.php' (include_path='.;/usr/local/php/PEAR') in z:\home\skat-sl\latex\includes\application_top.php on line 377

Насколько я понимаю, переменная language не была объявлена?

В чём может быть причина?

Ссылка на сообщение
Поделиться на другие сайты

Перепроверил... Накосячил конкретно, переделал заново.

Кстати, в качестве хинта - если магазин практически дублируется - префиксы можно добавить автозаменой в sql-файл, взятый из бэкапа оригинального магазина (вместо vam.sql), предварительно удалив "перекрещивающиеся" таблицы, а потом импортировать через PHP My Admin.

application_top и database_tables придётся всё равно править ручками.

Всё работает, точнее - почти всё... При попытке открыть карточку товара всё равно "Извините!

Интернет-магазин закрыт по техническим причинам, заходите позже."

И в прайсе почему-то отображается содержимое "родительского" магаза.

Наверное, где-то "там" таблицы прописаны не через переменные, а напрямую...

На днях выложу на сайт, сейчас гоняю под Денвером.

Но это уже что-то ;-)

Саш, спасибо огромное за поддержку!!!

Ссылка на сообщение
Поделиться на другие сайты

Если пишет, что магазин закрыт, значит какая-то ошибка в базе.

Нужно узнать, что за ошибка, вот так - http://vamshop.ru/faq.php/faq_id/36/question/V-magazine-vyvoditsya-soobshenie--Internet-magazin-zakryt-na-tehnicheskoe-obsluzhivanie--zahodite-pozzhe----chto-yeto-za-soobshenie-i-kak-ego-otklyuchit--

Тогда смогу что-либо конкретное сказать.

Ссылка на сообщение
Поделиться на другие сайты

Во. Посмотрел лог:


19/07/2009 16:07:40 | 1109 - Unknown table 'products_parameters' in where clause | SELECT * FROM z_products_parameters2products LEFT JOIN z_products_parameters using(products_parameters_id) WHERE products_id = 239 and products_parameters.products_parameters_id is not null and products_parameters_order >= 0 and products_parameters2products_order >= 0 order by IF(products_parameters2products_order > 0, products_parameters2products_order, products_parameters_order) | /product_info.php?products_id=239
[/code] Насколько я понял, где-то идёт ссылка на таблицу "products_parameters", которая принадлежит основному магазину, и где нет товара с ID 239. Имена вроде прописаны правильно, переменные подставляются корректно (у "дочернего" магаза префикс "z_"), нашёл кусок кода в product_info.php:
[code]// Parameters start

    $parameters_query = vamDBquery("SELECT * FROM ".TABLE_PRODUCTS_PARAMETERS2PRODUCTS." LEFT JOIN ".TABLE_PRODUCTS_PARAMETERS." using(products_parameters_id) WHERE products_id = ".$product->data['products_id']." and products_parameters.products_parameters_id is not null and products_parameters_order >= 0 and products_parameters2products_order >= 0 order by IF(products_parameters2products_order > 0, products_parameters2products_order, products_parameters_order)");

В SQL не силён, но мне кажется, что в строке "products_parameters.products_parameters_id" первая часть (до точки) это имя таблицы, так? Если да - либо прописать таблицу вручную, либо подставить переменную?

Ссылка на сообщение
Поделиться на другие сайты

Видимо, products_parameters где-то в коде прописана без константы, т.е. напрямую название указано.

Тогда только ещё одну таблицу в базе создать - products_parameters

Пишет, что нет таблицы products_parameters

Ссылка на сообщение
Поделиться на другие сайты

Таблица как раз-то есть. И принадлежит она основному магазину. Только там нет товара с таким кодом ;-)

Повторю вопрос:

в строке "products_parameters.products_parameters_id" первая часть (до точки) это имя таблицы?

Если да - проблема решена. Или почти решена.

UPDATE

Так и есть, поменял на


".TABLE_PRODUCTS_PARAMETERS.".products_parameters_id
[/code]

Заработало.

Надеюсь, таких засад больше не будет...

Ссылка на сообщение
Поделиться на другие сайты

Нет, это псевдоним таблицы скорей всего.

Выше где-то там будет что-то вроде from products_parameters as products_parameters

Ссылка на сообщение
Поделиться на другие сайты
  • 1 month later...

Удалось, но не до конца.

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

Основная проблема - отлавливать в ПХП-коде таблицы, указанные напрямую, а не через переменные.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...