Базы данных

Тема в разделе "Программирование", создана пользователем Александр_qwer, 07.11.2013.

  1. Offline

    Александр_qwer Недавно здесь

    Регистрация:
    07.11.2013
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Доброго времени суток! Уважаемые эксперты, прошу вашего совета, при создании сайта
    Любой не зарегистрированный пользователь зайдя на сайт, может заполнить предложенную форму (например: Город - Новосибирск, улица - Жукова 15, квартира - 115), это все сохраняется в базе данных на сайте (это я сделал и знаю название этой таблицы data_profession), и надо сделать так, чтобы сразу после того как форма запишется в базу данных на сайте создавался материал (в одной определенной категории) с названием Новосибирск, Жуково 15, 155 (материалы хранятся в content). Вообще это осуществимо?
    Такого компонента я не нашел, это надо из одной таблицы data_profession записать данные в другую таблицу content. А очень надо. Буду благодарен любой помощи!
    Спасибо!
     
  2.  
  3. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Напишите модуль с формочкой.
    Размещаете модуль на какой-нибудь странице сайта.
    Пользователь заполняет поля, отправляет форму.
    После отправки формы записываете в таблицу *****_content

    Чтобы подключиться к базе можно использовать JFactory::getDBO;
    Вкратце:
    Код (PHP):
    1. $db = JFactory::getDbo(); // получаем инфу о базе
    2. $query = $db->getQuery(true); // готовим новый запрос
    3. $query->select('title, author, date'); // название колонок в таблице БД
    4. $query->from('#__content'); // из какой таблицы выбираем
    5. $query->where('state = 1'); // условие для выборки
    6. $db->setQuery($query); // выполняем SQL-запрос
    7.  
    8. $list = $db->loadObjectList(); // грузим результат
    9.  
    10. foreach($list as $item){
    11.         echo $item->title."<br />";
    12.         echo $item->author."<br />";
    13.         echo $item->date."<br />";
    14. }


    Соответственно, для записи в базу:
    Код (PHP):
    1. $db = JFactory::getDbo(); // получаем инфу о базе
    2. $query = $db->getQuery(true); // готовим новый запрос
    3. $columns = array('user_id', 'profile_key', 'profile_value', 'ordering'); // Колонки для вставки
    4. $values = array(1001, $db->quote('custom.message'), $db->quote('Inserting a record using insert()'), 1); // Собсна... вставляем инфу
    5.  
    6. $query->insert($db->quoteName('#__user_profiles'));
    7. $query->columns($db->quoteName($columns));
    8. $query->values(implode(',', $values));
    9.  
    10. $db->setQuery($query);
    11.  
    12. $result = $db->query();



    Чтобы получить данные из отправляемых полей (для записи в базу в том числе) - можно использовать
    Код (PHP):
    1. JRequest::getVar('var', 'defVal', 'post');

    где
    var - имя получаемой переменной
    defVal - значение, присваиваемое переменной, если пришла пустая переменная
    post - тип запроса (GET / POST)

    Обязательный атрибут - только имя получаемой переменной.
     
  4. Offline

    Александр_qwer Недавно здесь

    Регистрация:
    07.11.2013
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо! Поэкспериментировал с кодом, дааа для меня это еще сложно. Самому модуль написать мне нереально.
    Еще раз спасибо!
     
  5. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 048
    Симпатии:
    520
    Пол:
    Мужской
    shurikkan,
    Прикрепи тему в Важные,чтобы была вверху.
     
    zoob32 нравится это.
  6. zoob32
    Offline

    zoob32 Пользователь

    Регистрация:
    23.12.2014
    Сообщения:
    109
    Симпатии:
    4
    Пол:
    Мужской
    Большое спасибо помогли в разработке ЛК ) и подключения к бд
     
  7. Offline

    iceman_89 Недавно здесь

    Регистрация:
    22.01.2013
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Подскажите такой момент, пожалуйста. Цель, при определенном условии проверять таблицу на наличие и если ее нет добавлять в базу данных. Пытался делать так:
    Код (CODE):
    1. class modCBaseHelper {
    2.     static function printConnect($params){
    3.      $db = JFactory::getDBO();
    4.      if (!$db->connected()) {
    5.        jexit();
    6.      } else {
    7.        $user = JFactory::getUser();
    8.        $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); ';
    9.        $db->setQuery($query);
    10.        echo $dbprefix;
    11.        if (!$user->guest) {
    12.          $managerID = $user->id;
    13.        }
    14.  
    15.      }  
    16.    }
    17. }
    , временно, для теста, запрос на создание поставил после проверки на коннект с базой данных, т.е. после обновления страницы с модулем, теоретически, при условии ,что базы данных xnflx_cbase нет, она должна создаться. Но этого не происходить. Подскажите пожалуйста, что не так?
     
  8. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 048
    Симпатии:
    520
    Пол:
    Мужской
    А с полом определился ?
    Код (PHP):
    1. $db->setQuery($query);

    Что то пропущено .
     
    Последнее редактирование: 14.11.2016
  9. Offline

    iceman_89 Недавно здесь

    Регистрация:
    22.01.2013
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Даже не знаю, что вам на это ответить. Одно могу сказать точно, делу ваш комментарий не помог.
     
  10. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 048
    Симпатии:
    520
    Пол:
    Мужской
    Дык я тоже не могу определить- в профиле вижу пол женский , а пишешь в мужском роде .
    --- добавлено: 14.11.2016, первое сообщение размещено: 14.11.2016 ---
    И проверь что возвращается в результат запроса $result . Запрос ты задал,а не выполнил .
     

    Вложения:

    • ice.JPG
      ice.JPG
      Размер файла:
      11.4 КБ
      Просмотров:
      1

Поделиться этой страницей

Загрузка...