Добрый день,
у меня такая ситуация:
разработал свое железо и хочу его подключить к MD.
В MD создал класс для своего железа (платы) с методами и свойствами. К MD можно подключать много моих плат. При подключении платы к MD по Ethernet плата передает свой номер и ее параметры. Хочу сделать следующее: чтобы при подключении моей платы создавался новый объект моего класса.
пытался сделать так.
1. из таблицы classes по запросу SELECT узнать SUB_LIST моего класса
2. Добавить новую запись в таблицу objects с SUB_LIST моего класса
но при подключении в БД у меня возникают ошибки.
Подскажите каким образом можно работать с таблицами БД. Какими функциями пользоваться? Как идти по записям? Как вносить новые записи в таблицу и делать update? Лучше всего с примером.
З.Ы. Адрес хоста, логин и пароль для БД указываю верно
Сергей
Проблемы с доступом к БД MD из php
Модератор: immortal
-
- Сообщения: 2
- Зарегистрирован: Пн авг 04, 2014 11:36 am
- Благодарил (а): 1 раз
- Поблагодарили: 0
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с доступом к БД MD из php
Добавил документ с описанием работы с базой данных из кода:
http://smartliving.ru/Main/ProgrammingDatabase
http://smartliving.ru/Main/ProgrammingDatabase
- За это сообщение автора sergejey поблагодарил:
- grave_digger (Пн авг 04, 2014 12:14 pm)
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 2
- Зарегистрирован: Пн авг 04, 2014 11:36 am
- Благодарил (а): 1 раз
- Поблагодарили: 0
Re: Проблемы с доступом к БД MD из php
Большое спасибо за документ, но возникла следующая ошибка
Выбираю данные из таблицы при помощи SQLSelect
$states = SQLSelect('SELECT TITLE FROM objects');
$cnt=Count($states);
For($i = 0; $i < $cnt; $i++) {
if $states[$i]['TITLE'] == $id{
$flag = 1;
}
при сохранении возникает ошибка
Parse error: syntax error, unexpected '$states' (T_VARIABLE), expecting '(' in C:\_majordomo\htdocs/cached/d1f30144e8e65e2e41399410f787917f.php on line 13
в первой строке. Что делать?
Сергей
Выбираю данные из таблицы при помощи SQLSelect
$states = SQLSelect('SELECT TITLE FROM objects');
$cnt=Count($states);
For($i = 0; $i < $cnt; $i++) {
if $states[$i]['TITLE'] == $id{
$flag = 1;
}
при сохранении возникает ошибка
Parse error: syntax error, unexpected '$states' (T_VARIABLE), expecting '(' in C:\_majordomo\htdocs/cached/d1f30144e8e65e2e41399410f787917f.php on line 13
в первой строке. Что делать?
Сергей
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с доступом к БД MD из php
Как минимум заменить
на
Код: Выделить всё
if $states[$i]['TITLE'] == $id {
Код: Выделить всё
if ($states[$i]['TITLE'] == $id) {
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 32 раза
- Поблагодарили: 28 раз
Re: Проблемы с доступом к БД MD из php
Сергей, здравствуйте!
А можно выложить туда же код, чтобы выбирать из phistory значения по сочетанию Объект.Свойство?
т.е. что-то наподобие SELECT value FROM phistory WHERE (Объект AND Свойство AND период выборки ...)
написал конечно схематично, на надеюсь смысл понятен. Так как пришлось самому что-то придумывать аналогичное, может есть более короткий и правильный путь? Т.е. чтобы можно было отобрать данные за нужный период или последние 100 например.
А можно выложить туда же код, чтобы выбирать из phistory значения по сочетанию Объект.Свойство?
т.е. что-то наподобие SELECT value FROM phistory WHERE (Объект AND Свойство AND период выборки ...)
написал конечно схематично, на надеюсь смысл понятен. Так как пришлось самому что-то придумывать аналогичное, может есть более короткий и правильный путь? Т.е. чтобы можно было отобрать данные за нужный период или последние 100 например.
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Проблемы с доступом к БД MD из php
С выборкой несколько сложнее, но ниже вполне рабочий примерdenis писал(а):Сергей, здравствуйте!
А можно выложить туда же код, чтобы выбирать из phistory значения по сочетанию Объект.Свойство?
т.е. что-то наподобие SELECT value FROM phistory WHERE (Объект AND Свойство AND период выборки ...)
написал конечно схематично, на надеюсь смысл понятен. Так как пришлось самому что-то придумывать аналогичное, может есть более короткий и правильный путь? Т.е. чтобы можно было отобрать данные за нужный период или последние 100 например.
Код: Выделить всё
$p='TempSensor1.temp'; // название свойства
$start_time=time()-7*24*60*60; // 7 дней
if ($p!='') {
if (preg_match('/(.+)\.(.+)/is', $p, $m)) {
$obj=getObject($m[1]);
$prop_id=$obj->getPropertyByName($m[2], $obj->class_id, $obj->id);
}
}
$pvalue=SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$obj->id."'");
//получаем массив данных:
$history=SQLSelect("SELECT ID, VALUE, UNIX_TIMESTAMP(ADDED) as UNX, ADDED FROM phistory WHERE VALUE_ID='".$pvalue['ID']."' AND ADDED>=('".date('Y-m-d H:i:s', $start_time)."') AND ADDED<=('".date('Y-m-d H:i:s', $end_time)."') ORDER BY ADDED");
http://localhost/pChart/?p=TempSensor1. ... og&type=7d
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 284
- Зарегистрирован: Сб ноя 24, 2012 11:47 am
- Благодарил (а): 32 раза
- Поблагодарили: 28 раз
Re: Проблемы с доступом к БД MD из php
Спасибо, так вполне подходит. Остальное думаю каждый под свои нужды "допилит".