Страница 1 из 2

Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 9:33 pm
Lyryks
Добрый день.
Прошу помощи, не могу разобраться.
Необходимо на сцену вывести значение из db_terminal.test
Просто пример, в таблице test есть две колонки:
id = 1
name = Вася

Нашел эту статью https://kb.mjdm.ru/funkcii-raboti-s-baz ... majordomo/
В данной статье написано что "В систему встроено несколько функций для работы непосредственно с базой данных. Эти функции доступны как из исходного кода системы, так и из любого метода или сценария..."
Попробовал из того что есть, а дальше как не понимаю
$result = SQLSelect('SELECT * FROM test WHERE id="1"');

Можно ли вообще нормально с этим механизмом работать или лучше не стоит?

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 9:40 pm
Jilber
А дальше что-то вроде "sg('Объект.Свойство', $result);"
И вывести свойство на сцену.

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 10:49 pm
Lyryks
Не совсем понял, прошу прощения.
Слева на панели Объекты - Создать новый класс. Создал новый объект и привязал к этому классу.
Открываю этот объект и сверху меню (Основное, Свойства, Методы, Объеты, Шаблон отображения)
Нижнее меню (Детали, Свойства, Методы)
И куда вставлять этот код я уже запутался. В методы - там есть поле код

На сцене создал Информер, выбрал объект и свойство, и ничего не происходит

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 10:52 pm
Jilber
Если вручную запустить метод, в который вы вставили этот код, в выбранном свойстве объекта и в информере на сцене результат появляется ? Скрин можно ?

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 11:01 pm
Lyryks
Нет, результат не появляется.
Я понимаю что делаю что то не то, и похоже путаюсь в свойствах и методах для классов и объектов.
И правильно ли что информер?

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 11:15 pm
Jilber
Lyryks писал(а):
Пн сен 14, 2020 10:49 pm
Открываю этот объект и сверху меню (Основное, Свойства, Методы, Объеты, Шаблон отображения)
Это относится ко всему классу.
Lyryks писал(а):
Пн сен 14, 2020 10:49 pm
Нижнее меню (Детали, Свойства, Методы)
А это уже свойства и методы конкретного объекта, открытого в данный момент.
В нижнем меню нажать на "Методы" и в открывшемся окне создать какой-то свой метод. В его код вставить:

Код: Выделить всё

$result = SQLSelect('SELECT * FROM test WHERE id="1"');
sg('Объект.Свойство', $result);
Разумеется в строке "sg('Объект.Свойство', $result);" 'Объект.Свойство' надо заменить на свои. После этого запустить этот метод вручную. В свойстве должен появиться результат.
Lyryks писал(а):
Пн сен 14, 2020 11:01 pm
И правильно ли что информер?
В данном случае дело не в информере, результат должен появиться в свойстве объекта, а оттуда его уже можно будет вывести куда угодно.

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 11:26 pm
fandaymon
Jilber писал(а):
Пн сен 14, 2020 11:15 pm

Код: Выделить всё

$result = SQLSelect('SELECT * FROM test WHERE id="1"');
sg('Объект.Свойство', $result);
Так делать не надо. В $result после селекта будет содержатся массив. Присваивать свойству массив не самая хорошая идея

Код: Выделить всё

$result = SQLSelectOne('SELECT * FROM test WHERE id="1"');
sg('Объект.Свойство', $result['name']);
SQLSelectOne выведет одну строку из таблицы. Далее мы указываем, что из этой строки интересует столбец name

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 11:35 pm
Jilber
Сейчас человеку нужно понять как вообще получить что-то из базы и вывести куда-то (просто в свойство, на сцену, в меню, и т.д.). Этот запрос и таблицу "test" он привёл просто для примера. Когда с этим разберётся тогда подскажете ему с конкретным запросом к конкретной таблице. :-)

Re: Прямой запрос к базе Mysql

Добавлено: Пн сен 14, 2020 11:56 pm
fandaymon
Jilber писал(а):
Пн сен 14, 2020 11:35 pm
Сейчас человеку нужно понять как вообще получить что-то из базы и вывести куда-то (просто в свойство, на сцену, в меню, и т.д.). Этот запрос и таблицу "test" он привёл просто для примера. Когда с этим разберётся тогда подскажете ему с конкретным запросом к конкретной таблице. :-)
Вот я и говорю, что таким образом ничего не получится, потому что таким образом мы будем пытаться записать в свойство массив

Re: Прямой запрос к базе Mysql

Добавлено: Вт сен 15, 2020 6:37 am
Lyryks
Спасибо большое, теперь понял как это работает. И спокойно вывел на информер и любое место
Jilber писал(а):
Пн сен 14, 2020 11:15 pm

Код: Выделить всё

$result = SQLSelect('SELECT * FROM test WHERE id="1"');
sg('Объект.Свойство', $result);
Разумеется в строке "sg('Объект.Свойство', $result);" 'Объект.Свойство' надо заменить на свои. После этого запустить этот метод вручную. В свойстве должен появиться результат.

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