Запрос переменных из MySQL с помощью ключа из переменной

kouhia

Client
Регистрация
28.09.2024
Сообщения
11
Благодарностей
1
Баллы
3
SELECT nameapp, boo, late, gue, paris FROM acc_variable WHERE nameofmachine = '{nameofmachine}';

У меня возникла проблема с получением переменных с помощью ключа из переменной. Вот это - '{nameofmachine}' неправильный синтаксис, так как если я ввожу грубое значение, то все возвращает правильно. Подскажите как правильно обозначить переменную?
 

kouhia

Client
Регистрация
28.09.2024
Сообщения
11
Благодарностей
1
Баллы
3
С этим разобрался, использовав стандартный для ЗД синтаксис переменных. Теперь у меня проблема, несколько часов бьюсь с записью переменных в mysql таблицу, не встроенными методами, не с помощью C# успеха добиться не получилось. Если у кого-то есть опыт и альтруистическое желание подсказать, буду очень благодарен. Неделю сижу над шаблоном, уже на финишной прямой и тут подстава с базами, пересмотрел и перечитал кучу инфы, либо я тупой, либо я что то упустил. В общем ничего не помогает.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
Так а что не так с записью? Смотри, что сервер возвращает, если ошибка. Возможно, данные неправильно вставляешь (например, несоответствие типа ячейки с форматом, который передаешь).
Самое простое - собрать нужную строку из переменных, положить в другую переменную или вывести в лог, чтобы понять, что у тебя вообще отправляется в базу (что-то может сразу очевидно стать). И от этого уже плясать. Если ошибка непосредственно в строке - сразу заметишь. Если строка кажется правильной, смотреть форматы столбцов, где кавычки, где еще что. Плюс не забываем, если где-то вносишь текст с теми же кавычками, надо экранировать.
Но, повторюсь, сперва проверь, что вообще отправляешь.
ps. Без понимания структуры БД и строки, которая отправляется, конечно, со стороны сложно сказать ))) При этом сам работаю с БД стандартными кубиками много лет уже, все работает отлично.
 

kouhia

Client
Регистрация
28.09.2024
Сообщения
11
Благодарностей
1
Баллы
3
Так а что не так с записью? Смотри, что сервер возвращает, если ошибка. Возможно, данные неправильно вставляешь (например, несоответствие типа ячейки с форматом, который передаешь).
Самое простое - собрать нужную строку из переменных, положить в другую переменную или вывести в лог, чтобы понять, что у тебя вообще отправляется в базу (что-то может сразу очевидно стать). И от этого уже плясать. Если ошибка непосредственно в строке - сразу заметишь. Если строка кажется правильной, смотреть форматы столбцов, где кавычки, где еще что. Плюс не забываем, если где-то вносишь текст с теми же кавычками, надо экранировать.
Но, повторюсь, сперва проверь, что вообще отправляешь.
ps. Без понимания структуры БД и строки, которая отправляется, конечно, со стороны сложно сказать ))) При этом сам работаю с БД стандартными кубиками много лет уже, все работает отлично.
Я уже от руки в переменные записал точно тот формат, который примут ячейки, мне просто нужно по ключу (названию устройства) заменить ячейки в строке с соответствующим названием. Я уже весь синтаксис попробовал, мне кажется я либо туплю с какой то донастройкой mysql либо с форматом самого запроса, ведь как такового формата как отправка данных я не нашел, единственное когда я выбираю не переменную а переменные экшен исполняется, единственное в таблицу нихера не отправляет: пробовал и так:
UPDATE acc_variable
SET nameapp = '{-Variable.nameapp-}',
boost = '{-Variable.boo-}',
template = '{-Variable.plate-}',
league = '{-Variable.lee-}',
balance = '{-Variable.balance-}'
WHERE nameofmachine = '{-Variable.nameofmachine-}';

и так:

UPDATE acc_variable SET nameapp = '[[nameapp]]', boost = '[[boo]]', template = '[[plate]]', league = '[[lee]]', balance = '[[balance]]' WHERE nameofmachine = '[[nameofmachine]]';

Короче я в общем за компом я без сна уже часов 36, мейби посплю и разберусь. Ну если я где то накосяпорил, то и забрать из таблицы я по идеи ничего не мог. Права у меня есть редактировать таблицу, из консоли могу ее менять. Может какой-нибудь файл в самой директории зеннодройд нужно поменять?
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
Я не про то. Не надо гадать. Возьми вот этот свой текст:
UPDATE acc_variable SET nameapp = '{-Variable.nameapp-}', boost = '{-Variable.boo-}', template = '{-Variable.plate-}', league = '{-Variable.lee-}', balance = '{-Variable.balance-}' WHERE nameofmachine = '{-Variable.nameofmachine-}';

(если мы исходим из того, что это кубик, а не сниппет, там переменные иначе вписываются, а второй вариант - вообще не про зенку)

И просто собери его в текст БЕЗ переменных (можешь потом этот текст показать). Чтобы у тебя там были сами значения переменных, а не их названия. И посмотри, что в итоге получилось.
Плюс, повторюсь, смотри структуру таблицы, точнее, формат ячеек. Мало ли, там у какой-то стоит условный int, а ты в него фигачишь текст. (Можешь структуру скрином из phpMyAdmin показать).
 

kouhia

Client
Регистрация
28.09.2024
Сообщения
11
Благодарностей
1
Баллы
3
Я не про то. Не надо гадать. Возьми вот этот свой текст:
UPDATE acc_variable SET nameapp = '{-Variable.nameapp-}', boost = '{-Variable.boo-}', template = '{-Variable.plate-}', league = '{-Variable.lee-}', balance = '{-Variable.balance-}' WHERE nameofmachine = '{-Variable.nameofmachine-}';

(если мы исходим из того, что это кубик, а не сниппет, там переменные иначе вписываются, а второй вариант - вообще не про зенку)

И просто собери его в текст БЕЗ переменных (можешь потом этот текст показать). Чтобы у тебя там были сами значения переменных, а не их названия. И посмотри, что в итоге получилось.
Плюс, повторюсь, смотри структуру таблицы, точнее, формат ячеек. Мало ли, там у какой-то стоит условный int, а ты в него фигачишь текст. (Можешь структуру скрином из phpMyAdmin показать).
Да, я действительно не упомянул, что я подставлял строгие значения вместо переменных и все равно реззультат был тот же. phpMyAdmin не пользуюсь, но структуру таблицы покажу как посплю. Коро
Я не про то. Не надо гадать. Возьми вот этот свой текст:
UPDATE acc_variable SET nameapp = '{-Variable.nameapp-}', boost = '{-Variable.boo-}', template = '{-Variable.plate-}', league = '{-Variable.lee-}', balance = '{-Variable.balance-}' WHERE nameofmachine = '{-Variable.nameofmachine-}';

(если мы исходим из того, что это кубик, а не сниппет, там переменные иначе вписываются, а второй вариант - вообще не про зенку)

И просто собери его в текст БЕЗ переменных (можешь потом этот текст показать). Чтобы у тебя там были сами значения переменных, а не их названия. И посмотри, что в итоге получилось.
Плюс, повторюсь, смотри структуру таблицы, точнее, формат ячеек. Мало ли, там у какой-то стоит условный int, а ты в него фигачишь текст. (Можешь структуру скрином из phpMyAdmin показать).
Конкретные значения тоже не записывает в базу. Я скорее всего накосячил либо с установкой mysql либо с созданием базы. В любом случае решил пока скипнуть эту тему с базами, проще пока найти другое решение, а как запущу проект буду уже решать. В любом случае спасибо за попытку помочь, проблема скорее всего у меня фундаментальная.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 630
Благодарностей
1 225
Баллы
113
Подключись через HeidiSQL какой-нить к базе и посмотри, уверен, многое станет очевидно.
Плюс посмотри, что сервер при попытке залить, отвечает. Там же тоже подсказки в ошибках.
На край, создай бд на каком-нить шаред-хостинге на тесте, попробуй залей туда, чтобы понять, где ошибка - в бд или же в запросах.
Просто странно менять всю логику работы из-за проблемы, с которой разобраться - полчаса от силы, если правильно "сегментировать" поиск этой самой проблемы ))
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)