Новости Joomla

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

👩‍💻 20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет. Вокруг неё сложилось большое интернациональное русскоязычное сообщество. На сайте нашего сообщества и на Хабре к юбилею были собраны интервью с его видными представителями. Сегодня мы читаем интервью с Ринатом Кажетовым (@rkazhet). Ринат - один из администраторов чата русскоязычного Joomla-сообщества, из Казахстана. Это человек, который всегда знает или найдёт нужную ссылку, пристально следит за новостями в мире Joomla, многое узнаёт первым и просто очень отзывчивый человек. Интервью с Ринатом взял Евгений Сивоконь.Читать интервью@joomlafeed#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 2160 Просмотров
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Здравствуйте. Снова нуждаюсь в Вашей помощи.
Вопрос в следующем. На front-end части сайта пользователь заполняет определённую форму. Но данные должны сохранятся в две таблицы.
Например:
Есть таблицы jos_properties_products с послем name и jos_properties_products_translations с полем pt_name
На сайта два поля с именем name и pt_name
Как сделать так что бы данные из поля name попадали в таблицу jos_properties_products а pt_name в jos_properties_products_translations

В данный момент функция store() выглядит так:

Код
  function store($data)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables');
$row =& JTable::getInstance('products', 'Table');
if (!$row->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
return true;
}

Для таблицы jos_properties_products_translations есть отдельный файл "tables" по этому пути: (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables')

Заранее спасибо за помощь!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: store() и несколько таблиц mysql
« Ответ #1 : 22.11.2011, 15:37:34 »
написать нужный SQL запрос и выполнять его. В этом или другом каком-нибудь методе.
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Re: store() и несколько таблиц mysql
« Ответ #2 : 22.11.2011, 15:40:57 »
а c использованием двух файлов "tables" в которых уже размечена структура таблиц и выполняется запрос?
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
Re: store() и несколько таблиц mysql
« Ответ #3 : 22.11.2011, 15:45:33 »
Ну так выполни тот же самый алгоритм для другой tables
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Re: store() и несколько таблиц mysql
« Ответ #4 : 22.11.2011, 15:52:13 »
я понятия не имею чего нужно.
Но насколько мне известно операторы INSERT и UPDATE работают с одной таблицей. Т.е. это минимум два запроса будет.
Так же если в них используются какие-то индексы, то их тоже нужно учитывать.
Кроме вас структуры вашей БД никто не знает, следовательно помочь чем-то будет проблематично))
*

zt.Dan4ik

  • Осваиваюсь на форуме
  • 31
  • 1 / 0
Re: store() и несколько таблиц mysql
« Ответ #5 : 22.11.2011, 16:18:35 »
Lex, я об этом думал и даже пытался сделать, в начале не получилось, поэтому обратился на форум. Твой пост заставил меня еще раз попробовать и все получилось. В первой попытке сделал ошибку. Без тебя я бы не справился  *DRINK*

Код
  function store($data)
{
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_properties'.DS.'tables');
$row =& JTable::getInstance('products', 'Table');
$ptrow =& JTable::getInstance('products_translations', 'Table');

if (!$row->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$row->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->bind($data)) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->check()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
if (!$ptrow->store()) {
$this->setError( $this->_db->getErrorMsg() );
return false;
}
return true;
}

SmokerMan, у меня такое чувство что ты совсем не читал мой первый пост. Я ведь описал для примера элементарную структуру базы и формы. Ведь этого достаточно что бы понять суть вопроса. Я не просил за меня сделать всю работу поэтому не приводил структуру таблиц с которыми работаю ибо она огромная.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться