Форум русской поддержки Joomla!® CMS
04.12.2016, 16:21:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Запрос в таблицу - соответствие отбора и подстановка значения

 (Прочитано 1384 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« : 10.11.2015, 10:48:34 »

Добрый день! Создал в MySQL таблицу данные вида:
vid             co     ch      no
нефть   41,91 73,3    73,3
вода           21,2   54,6   45,1
Через сопоставление создал запрос к БД
`danie` (Локальный)    INSERT INTO `danie` SET `vid` = '{Activity:value}' , `co2` = '{co:value}' , `ch4` = '{ch:value}' , `n2o` = '{no:value}'
На форме – есть перечень выпадающего списка данных:
Нефть
Вода
…….
Подскажите как реализовать – если выбрать из списка нефть – что бы поля co2, ch4, n2o – подставлялись значения из базы данных.

Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #1 : 10.11.2015, 11:18:21 »

Я понимаю - что неправильно - что данные записываются в данную таблицу - а мне нужно их от туда забрать!
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #2 : 10.11.2015, 12:26:57 »

Нашел php код - который надо вставить в выпадающий список
kod_activity - таблица

vid - перечень данных.
Ошибок не выводит - но и список тоже Sad

//<code>
$items = array();
$db = JFactory::getDbo();

$items[] = "|Выберите[c]";

$db->setQuery("SELECT kod_id, vid FROM kod_activity");
$results = $db->loadObjectList();

foreach ($results as $result) {
$value = $result->kod_id;
$label = $result->vid;
$items[] = $value.'|'.$label;
}

$items = implode("\n", $items);

return $items;
//</code>
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #3 : 10.11.2015, 12:33:50 »

FROM #__kod_activity
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #4 : 10.11.2015, 12:35:38 »

FROM #__kod_activity

Таблица создана - вручную  и выдает ошибку Table 'gaz.gd6sp_kod_activity' doesn't exist SQL=SELECT kod_id, vid FROM gd6sp_kod_activity
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #5 : 10.11.2015, 12:38:15 »

Откуда у вас gaz этот взялся? Попробуйте проверить с указанием явно префикса: FROM gd6sp_kod_activity
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #6 : 10.11.2015, 12:39:38 »

Откуда у вас gaz этот взялся? Попробуйте проверить с указанием явно префикса: FROM gd6sp_kod_activity
gaz это бд - балицу kod_activity создал в ручную.

я понял ошубку - запрос не знает где искать таблицу
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #7 : 10.11.2015, 12:46:07 »

Откуда у вас gaz этот взялся? Попробуйте проверить с указанием явно префикса: FROM gd6sp_kod_activity

заработал!

Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #8 : 10.11.2015, 12:54:48 »

Откуда у вас gaz этот взялся? Попробуйте проверить с указанием явно префикса: FROM gd6sp_kod_activity
А подскажите как сделать взаимосвязь!

В таблице gd6sp_kod_activity - есть столбцы kod_id, vid, и Значение.

Если я выбираю или kod_id или vid - как произвести вставку значения данной строки - в другое текстовое поле?

Очень прошу подсказать Azn

Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #9 : 10.11.2015, 12:59:27 »

Вам нужно из одной таблицы выбрать данные и внести в другую?
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #10 : 10.11.2015, 13:03:13 »

Вам нужно из одной таблицы выбрать данные и внести в другую?

Да. что бы в зависимости от выбранного vid - подставились данные и произвести расчет
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #11 : 10.11.2015, 13:05:03 »

Исходные данные
Сырая нефть   41,91    73,3      73,3
Природный газоконденсат    44,2   64,2   64,2
Природный газ   33,82    54,4      54,4

и в зависимости от вида - подставились данные значения в скрытые поля и путем расчета вывелись пользователю - конечные значения в открытые (не редактируемые)поля.
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #12 : 10.11.2015, 13:07:39 »

А писать в БД зачем? Расчёт JS делает.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #13 : 10.11.2015, 13:11:32 »

А писать в БД зачем? Расчёт JS делает.
Исходных данных очень много - значений 3 вида - это коэффициенты. (может в дальнейшем как вариант в них будут записываться новые значения - и проще будет или автоматизировать изменения данных в таблице - чем выискивать в js).
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #14 : 10.11.2015, 13:13:01 »

Вы наверное имеете виду про первый пост - он не верен. мне необходим обратный механизм. не писать в бд а считывать
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #15 : 10.11.2015, 13:16:23 »

Всё равно не пойму, что вам нужно сделать. Smiley На всякий случайдокументация по работе с БД.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #16 : 10.11.2015, 13:27:17 »

Всё равно не пойму, что вам нужно сделать. Smiley На всякий случайдокументация по работе с БД.


Вид деятельности - данных будет браться из БД
Год - это данные по годам для аккумулирования. (будут в дальнейшем использоваться для фильтрации)
Исходные данные - это число вводит пользователь за год.


CO2, CH4, N2O  - это данные которые будут накапливаться по годам.
есть СКРЫТЫЕ поля co, ch, no - в них я планирую записывать данные из БД в зависимости от выбора Вид деятельности.

в дальнейшем co, ch, no - умножаем на исходные данные и делим на 100 - это выбросы в зависимости от вида (мы экологи). Расчетные данные подставляются в CO2, CH4, N2O и сохраняются.

 
« Последнее редактирование: 20.11.2015, 13:07:42 от kodblack » Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #17 : 10.11.2015, 13:51:46 »

Вам два запроса нужно делать. Первый при загрузке формы: SELECT, второй при сохранении: INSERT или UPDATE.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #18 : 10.11.2015, 15:19:44 »

Вам два запроса нужно делать. Первый при загрузке формы: SELECT, второй при сохранении: INSERT или UPDATE.
т.е
$query->insert('#__kod_activity')
->columns('co, ch, no')
->values('1,2,3');

не подскажите - как? Sad
что то я запутался.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #19 : 10.11.2015, 15:48:13 »

И мне ведь вроде не при сохранение надо а при выборе вида - что бы пользователь видел - что происходит расчет!
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #20 : 20.11.2015, 11:40:54 »

Добрый день! подскажите - как создать 2й запрос - на выбор данных из таблицы при выборе первого значения. по документации - слабое описание - ничего понять не могу Sad
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #21 : 20.11.2015, 11:49:21 »

Вам два запроса нужно делать. Первый при загрузке формы: SELECT, второй при сохранении: INSERT или UPDATE.
получается - если до этогов Select - выбран параметр - то через скрытое поле - можно запросом insert или update зацепить значение - которое находится в таблице с данным из select?
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #22 : 20.11.2015, 11:52:50 »

Из двух таблиц нужно выбрать?
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #23 : 20.11.2015, 12:05:55 »

Из двух таблиц нужно выбрать?
нет. из одной но в разные поля.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #24 : 20.11.2015, 12:10:56 »

Из двух таблиц нужно выбрать?
это моя таблица -
есть форма -
и мне необходимо что бы при выборе Вид деятельности - данные с таблицы равные этому виду - подставлялись в скрытые поля (для математики)
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #25 : 20.11.2015, 12:13:10 »

т.е - выбрали Сырая нефть        
В скрытые поля co, ch, no -подставились значения из БД   41.91,   73.3,     73.3
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #26 : 20.11.2015, 12:15:01 »

Я дак понимаю - здесь нужен один большой запрос SELECT
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #27 : 20.11.2015, 12:18:53 »

Смотрите, если таблица небольшая, лучше всю её выбрать сразу, при загрузке страницы. Потом, при селекте полей уже из объекта или массива брать данные. В противном случае, тут нужно аякс-запрос делать на выборку, при выборе селекта/чекбокса.
Записан
kodblack
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 51


« Ответ #28 : 20.11.2015, 12:23:06 »

Смотрите, если таблица небольшая, лучше всю её выбрать сразу, при загрузке страницы. Потом, при селекте полей уже из объекта или массива брать данные. В противном случае, тут нужно аякс-запрос делать на выборку, при выборе селекта/чекбокса.
Таблица менее 100 позиций - думаю не критично!
Вот как прописать в запросе?
Так я только забераю в name_vid данные - а как еще данные передать в скрытые поля co, ch, no?
//<code>
$items = array();
$db = JFactory::getDbo();
$items[] = "|Выберите[c]";
$db->setQuery("SELECT kod_id, vid FROM #__kod_activity");
$results = $db->loadObjectList();
foreach ($results as $result) {
$value = $result->kod_id;
$label = $result->vid;
$items[] = $value.'|'.$label;
}
$items = implode("\n", $items);
return $items;
//</code>
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #29 : 20.11.2015, 12:30:38 »

Код
$kod_activity = json_encode($results); //можно закодировать в строку
setcookie("kod_activity", $kod_activity, time()+360000); //и сохранить в кукисы, потом брать оттуда.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet