Доброго времени суток! Уважаемые эксперты, прошу вашего совета, при создании сайта Любой не зарегистрированный пользователь зайдя на сайт, может заполнить предложенную форму (например: Город - Новосибирск, улица - Жукова 15, квартира - 115), это все сохраняется в базе данных на сайте (это я сделал и знаю название этой таблицы data_profession), и надо сделать так, чтобы сразу после того как форма запишется в базу данных на сайте создавался материал (в одной определенной категории) с названием Новосибирск, Жуково 15, 155 (материалы хранятся в content). Вообще это осуществимо? Такого компонента я не нашел, это надо из одной таблицы data_profession записать данные в другую таблицу content. А очень надо. Буду благодарен любой помощи! Спасибо!
Напишите модуль с формочкой. Размещаете модуль на какой-нибудь странице сайта. Пользователь заполняет поля, отправляет форму. После отправки формы записываете в таблицу *****_content Чтобы подключиться к базе можно использовать JFactory::getDBO; Вкратце: Код (PHP): $db = JFactory::getDbo(); // получаем инфу о базе $query = $db->getQuery(true); // готовим новый запрос $query->select('title, author, date'); // название колонок в таблице БД $query->from('#__content'); // из какой таблицы выбираем $query->where('state = 1'); // условие для выборки $db->setQuery($query); // выполняем SQL-запрос $list = $db->loadObjectList(); // грузим результат foreach($list as $item){ echo $item->title."<br />"; echo $item->author."<br />"; echo $item->date."<br />"; } Соответственно, для записи в базу: Код (PHP): $db = JFactory::getDbo(); // получаем инфу о базе $query = $db->getQuery(true); // готовим новый запрос $columns = array('user_id', 'profile_key', 'profile_value', 'ordering'); // Колонки для вставки $values = array(1001, $db->quote('custom.message'), $db->quote('Inserting a record using insert()'), 1); // Собсна... вставляем инфу $query->insert($db->quoteName('#__user_profiles')); $query->columns($db->quoteName($columns)); $query->values(implode(',', $values)); $db->setQuery($query); $result = $db->query(); Чтобы получить данные из отправляемых полей (для записи в базу в том числе) - можно использовать Код (PHP): JRequest::getVar('var', 'defVal', 'post'); где var - имя получаемой переменной defVal - значение, присваиваемое переменной, если пришла пустая переменная post - тип запроса (GET / POST) Обязательный атрибут - только имя получаемой переменной.
Спасибо! Поэкспериментировал с кодом, дааа для меня это еще сложно. Самому модуль написать мне нереально. Еще раз спасибо!
Подскажите такой момент, пожалуйста. Цель, при определенном условии проверять таблицу на наличие и если ее нет добавлять в базу данных. Пытался делать так: Код (CODE): class modCBaseHelper { static function printConnect($params){ $db = JFactory::getDBO(); if (!$db->connected()) { jexit(); } else { $user = JFactory::getUser(); $query = ' CREATE TABLE IF NOT EXISTS xnflx_cbase(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, manager_id INT, call_date VARCHAR(10), contact_name VARCHAR(40), contact_phone VARCHAR(20), contact_position VARCHAR(40), contact_service VARCHAR(40), call_status VARCHAR(40), manager_comment TEXT); '; $db->setQuery($query); echo $dbprefix; if (!$user->guest) { $managerID = $user->id; } } } } , временно, для теста, запрос на создание поставил после проверки на коннект с базой данных, т.е. после обновления страницы с модулем, теоретически, при условии ,что базы данных xnflx_cbase нет, она должна создаться. Но этого не происходить. Подскажите пожалуйста, что не так?
Дык я тоже не могу определить- в профиле вижу пол женский , а пишешь в мужском роде . --- добавлено: 14.11.2016, первое сообщение размещено: 14.11.2016 --- И проверь что возвращается в результат запроса $result . Запрос ты задал,а не выполнил .