Страница 1 из 1
Проблемы с доступом к БД MD из php
Добавлено: Пн авг 04, 2014 11:51 am
grave_digger
Добрый день,
у меня такая ситуация:
разработал свое железо и хочу его подключить к MD.
В MD создал класс для своего железа (платы) с методами и свойствами. К MD можно подключать много моих плат. При подключении платы к MD по Ethernet плата передает свой номер и ее параметры. Хочу сделать следующее: чтобы при подключении моей платы создавался новый объект моего класса.
пытался сделать так.
1. из таблицы classes по запросу SELECT узнать SUB_LIST моего класса
2. Добавить новую запись в таблицу objects с SUB_LIST моего класса
но при подключении в БД у меня возникают ошибки.
Подскажите каким образом можно работать с таблицами БД. Какими функциями пользоваться? Как идти по записям? Как вносить новые записи в таблицу и делать update? Лучше всего с примером.
З.Ы. Адрес хоста, логин и пароль для БД указываю верно
Сергей
Re: Проблемы с доступом к БД MD из php
Добавлено: Пн авг 04, 2014 12:09 pm
sergejey
Добавил документ с описанием работы с базой данных из кода:
http://smartliving.ru/Main/ProgrammingDatabase
Re: Проблемы с доступом к БД MD из php
Добавлено: Пн авг 04, 2014 12:36 pm
grave_digger
Большое спасибо за документ, но возникла следующая ошибка
Выбираю данные из таблицы при помощи 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
в первой строке. Что делать?
Сергей
Re: Проблемы с доступом к БД MD из php
Добавлено: Пн авг 04, 2014 12:41 pm
sergejey
Re: Проблемы с доступом к БД MD из php
Добавлено: Вт авг 05, 2014 7:38 am
denis
Сергей, здравствуйте!
А можно выложить туда же код, чтобы выбирать из phistory значения по сочетанию Объект.Свойство?
т.е. что-то наподобие SELECT value FROM phistory WHERE (Объект AND Свойство AND период выборки ...)
написал конечно схематично, на надеюсь смысл понятен. Так как пришлось самому что-то придумывать аналогичное, может есть более короткий и правильный путь? Т.е. чтобы можно было отобрать данные за нужный период или последние 100 например.
Re: Проблемы с доступом к БД MD из php
Добавлено: Вт авг 05, 2014 12:58 pm
sergejey
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");
Приблизительно так работает по подобной ссылке (данные за 7 дней свойства TempSensor1.temp):
http://localhost/pChart/?p=TempSensor1. ... og&type=7d
Re: Проблемы с доступом к БД MD из php
Добавлено: Вт авг 05, 2014 4:53 pm
denis
Спасибо, так вполне подходит. Остальное думаю каждый под свои нужды "допилит".