Простой вопрос по выводу из Mysql в php

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
bdxprns
Сообщения: 37
Зарегистрирован: 01 июл 2011, 14:28
Откуда: spb

Простой вопрос по выводу из Mysql в php

Сообщение bdxprns » 17 июл 2011, 13:06

штурмую php чтобы написать самостоятельно скрипты для своего умного дома. застрял на простой задаче - вывести данные из MySql в массив php для последующего построения графика в jpgraph.


моя база данных

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

+-----+----------+------+-------+------------+
| num | date     | temp | realt | data       |
+-----+----------+------+-------+------------+
| 308 | 01:17:30 |   36 |  NULL | 2011-07-04 |
| 307 | 01:15:18 |   36 |  NULL | 2011-07-04 |
| 306 | 01:14:06 |   35 |  NULL | 2011-07-04 |
| 305 | 01:12:09 |   35 |  NULL | 2011-07-04 |
| 304 | 01:11:46 |   43 |  NULL | 2011-07-04 |
мой неправильный вариант скрипта, никак не получается создать массив такого вида $xdata = array (100,700,300,400,500,600);

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

$query = "SELECT temp FROM dates";
$result = mysql_query($query) or die("Couldn't execute query!");

if (!$result)
{
echo "<p>Запрос на выборку данных из БД не прошёл. Сообщите об этом администратору сайта</p>";

exit(mysql_error());
}

// Если запрос удачный, помещаем результат запроса (массив) 
// с помощью функции mysql_num_rows($result) в переменную $myrow
if (mysql_fetch_field($result) > 0)
{
$myrow = mysql_fetch_array($result);
$ydata = mysql_fetch_row($result) ;

} else {
echo "<p>Информация по запросу не может быть извлечена, в таблице нет записей</p>";
}
подскажите плз как сделать такой массив чтобы все получилось -)
ok

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Простой вопрос по выводу из Mysql в php

Сообщение Andrey_B » 17 июл 2011, 13:52

bdxprns, я, конечно, не модератор, но ваш вопрос в стиле "все пропало, ничего не работает". Из него не ясно где затруднение и в чем оно выражается.
PHP - очень хорошо документирован. В документации представлено масса примеров. Очень рекомендую php.net - отличный сайт.
Что касается вашей задачи, то решить ее можно 5 разными функциями. Например, так:

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

$result = mysql_query("SELECT temp FROM dates ORDER BY num");
while ($row = mysql_fetch_row($result))
{ $xdata[] = $row[0]; }
Собственно и все.

bdxprns
Сообщения: 37
Зарегистрирован: 01 июл 2011, 14:28
Откуда: spb

Re: Простой вопрос по выводу из Mysql в php

Сообщение bdxprns » 17 июл 2011, 15:10

Спасибо - сейчас буду пробовать.
Если вы против подобных вопросов на этом форуме - я могу переместиться с ними на другой форум. Но тут как-то уютнее =)

Документации много и по php и по mysql, bash но выудить то что нужно конкретно не всегда получается.

Вот например сейчас уперся в очень простую задачу. Считать значение с датчика , записать его в переменную и сравнить с другой переменной которая является заданной температурой комфорта. Документация не помогает.

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

#!/bin/bash
t=$(sudo cat /mnt/1-wire/28.7FCDDA020000/temperature)
tok=25
echo $t
echo $tok
        if [ "$t" -gt "$tok" ]
        then
                echo "температура выше комфортной"
        fi
        if [ "$t" -lt "$tok" ]
        then
                echo "температура ниже комфортной"
        fi
Скрипт возвращает вот что

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

anton@anton-ubuntu:~$ sudo ./2.sh
26.5625
25
[: 9: Illegal number:      26.5625
[: 13: Illegal number:      26.5625
согласитесь новичку тяжело разобраться.
ok

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Простой вопрос по выводу из Mysql в php

Сообщение Andrey_B » 17 июл 2011, 16:09

Операторы -gt -lt -le -ge работаю только с целыми числами. А у вас в переменной t не целое число.
Попробуйте операторы >, < , <=, >=

bdxprns
Сообщения: 37
Зарегистрирован: 01 июл 2011, 14:28
Откуда: spb

Re: Простой вопрос по выводу из Mysql в php

Сообщение bdxprns » 17 июл 2011, 16:38

уже пробовал - не получается.

может подскажете как в bash преобразовать число с запятой в целое? гуглю но пока не нашел.
ok

bdxprns
Сообщения: 37
Зарегистрирован: 01 июл 2011, 14:28
Откуда: spb

Re: Простой вопрос по выводу из Mysql в php

Сообщение bdxprns » 18 июл 2011, 12:47

вопрос закрыт - сегодня узнал что php скрипт тоже можно запускать через cron и реализовал задуманное средставми php.
ok

Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Простой вопрос по выводу из Mysql в php

Сообщение Andrey_B » 18 июл 2011, 12:47

Существует вот такое решение этой проблемы:

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

#!/bin/bash
t=$(sudo cat /mnt/1-wire/28.7FCDDA020000/temperature)
tok=25
echo $t
echo $tok
compare_result=`echo "$t > $tok" | bc`
if [ "$compare_result" == "1" ]; then
        echo "температура выше комфортной"
else
        echo "температура ниже комфортной"
fi

bdxprns
Сообщения: 37
Зарегистрирован: 01 июл 2011, 14:28
Откуда: spb

Re: Простой вопрос по выводу из Mysql в php

Сообщение bdxprns » 18 июл 2011, 13:49

спасибо, буду знать! а если забуду - знаю куда зайти чтобы посмотреть шпаргалку! -)
ok

Ответить