Проблемы с доступом к БД MD из php

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
grave_digger
Сообщения: 2
Зарегистрирован: Пн авг 04, 2014 11:36 am
Благодарил (а): 1 раз
Поблагодарили: 0

Проблемы с доступом к БД MD из php

Сообщение grave_digger » Пн авг 04, 2014 11:51 am

Добрый день,
у меня такая ситуация:
разработал свое железо и хочу его подключить к MD.
В MD создал класс для своего железа (платы) с методами и свойствами. К MD можно подключать много моих плат. При подключении платы к MD по Ethernet плата передает свой номер и ее параметры. Хочу сделать следующее: чтобы при подключении моей платы создавался новый объект моего класса.

пытался сделать так.
1. из таблицы classes по запросу SELECT узнать SUB_LIST моего класса
2. Добавить новую запись в таблицу objects с SUB_LIST моего класса

но при подключении в БД у меня возникают ошибки.

Подскажите каким образом можно работать с таблицами БД. Какими функциями пользоваться? Как идти по записям? Как вносить новые записи в таблицу и делать update? Лучше всего с примером.

З.Ы. Адрес хоста, логин и пароль для БД указываю верно

Сергей
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Проблемы с доступом к БД MD из php

Сообщение sergejey » Пн авг 04, 2014 12:09 pm

Добавил документ с описанием работы с базой данных из кода:
http://smartliving.ru/Main/ProgrammingDatabase
За это сообщение автора sergejey поблагодарил:
grave_digger (Пн авг 04, 2014 12:14 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
grave_digger
Сообщения: 2
Зарегистрирован: Пн авг 04, 2014 11:36 am
Благодарил (а): 1 раз
Поблагодарили: 0

Re: Проблемы с доступом к БД MD из php

Сообщение grave_digger » Пн авг 04, 2014 12:36 pm

Большое спасибо за документ, но возникла следующая ошибка
Выбираю данные из таблицы при помощи 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

Сообщение sergejey » Пн авг 04, 2014 12:41 pm

Как минимум заменить

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

if $states[$i]['TITLE'] == $id { 
на

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

if ($states[$i]['TITLE'] == $id) { 

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 32 раза
Поблагодарили: 28 раз

Re: Проблемы с доступом к БД MD из php

Сообщение denis » Вт авг 05, 2014 7:38 am

Сергей, здравствуйте!
А можно выложить туда же код, чтобы выбирать из phistory значения по сочетанию Объект.Свойство?
т.е. что-то наподобие SELECT value FROM phistory WHERE (Объект AND Свойство AND период выборки ...)
написал конечно схематично, на надеюсь смысл понятен. Так как пришлось самому что-то придумывать аналогичное, может есть более короткий и правильный путь? Т.е. чтобы можно было отобрать данные за нужный период или последние 100 например.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Проблемы с доступом к БД MD из php

Сообщение sergejey » Вт авг 05, 2014 12:58 pm

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
За это сообщение автора sergejey поблагодарил:
Bagir (Сб сен 20, 2014 9:52 am)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
denis
Сообщения: 284
Зарегистрирован: Сб ноя 24, 2012 11:47 am
Благодарил (а): 32 раза
Поблагодарили: 28 раз

Re: Проблемы с доступом к БД MD из php

Сообщение denis » Вт авг 05, 2014 4:53 pm

Спасибо, так вполне подходит. Остальное думаю каждый под свои нужды "допилит".
Ответить