Вывод данных на сайте средствами PHP в цикле do while, как окультурить в табличную форму
- Войдите на сайт для отправки комментариев
Вс, 09/08/2020 - 22:00
ESP8266 закидывает данные с датчиков (температура) в базу MYSQL, вывожу на сайте так:
// Получаем данные по температуре и выводим на сайте
<?php
echo('Данные по температуре за последние 120 минут!<br><br>');
$result = mysqli_query($connect, "SELECT * FROM `temperature` WHERE date_time >= NOW( ) - INTERVAL 120 MINUTE LIMIT 0 , 99");
if ($result)
{
$count = 1;
$row = mysqli_fetch_array($result);
do
{
if($count <10){
echo('0'.$count.' || '.$row[date_time].' || '.$row[sensor_temp1].' || '.$row[sensor_temp2].' || '.$row[sensor_temp3].' || '.$row[client_ip].'<br>');
}else{
echo($count.' || '.$row[date_time].' || '.$row[sensor_temp1].' || '.$row[sensor_temp2].' || '.$row[sensor_temp3].' || '.$row[client_ip].'<br>');
}
$count += 1;
} while($row = mysqli_fetch_array($result));
}
?>
И попытки окультурить в табличную форму тегами безуспешны.
ЧЯДНТ?
И попытки окультурить в табличную форму тегами безуспешны.
А где попытки?
И попытки окультурить в табличную форму тегами безуспешны.
А где попытки?
Пробовал так и с одиночными и с двойными, не взлетело:
(только сильно не пинайте, в php я в минус 1)
Я тоже табличных тэгов не вижу. Если нужна табличная форма, ну так и делайте ее:
Как то так это пытаются сделать.
И попытки окультурить в табличную форму тегами безуспешны.
А где попытки?
Пробовал так и с одиночными и с двойными, не взлетело:
(только сильно не пинайте, в php я в минус 1)
А зачем лишние символы в html-коде?
Между тд палки не нужны. До тр-ов нужен тейбл, после - /тейбл.
Это если делать нонреспонзибле, в противном случае - дивы/спаны и через цсс разгонять.
Это Вы с кем сейчас разговаривали )))
Сек. попробую поправить, как бум говорил, теги начала и конца таблицы естественно до и после цикла вставлены были...
Виной всему был тег <br> )))
А так можно?
//задаем массивы данных графиков $result = mysqli_query($connect, "SELECT * FROM `temperature` WHERE date_time >= NOW( ) - INTERVAL 10 MINUTE LIMIT 0 , 99"); if ($result) { $count = 1; $row = mysqli_fetch_array($result); do { $x1[$count-1]=$count-1; $y1[$count-1]=$row[sensor_temp1]; $x2[$count-1]=$count-1; $y2[$count-1]=$row[sensor_temp2]; $x3[$count-1]=$count-1; $y3[$count-1]=$row[sensor_temp3]; #echo '<tr><td>'.'0'.$count.'</td><td>'.$row[date_time].'</td><td>'.$row[sensor_temp1].'</td><td>'.$row[sensor_temp2].'</td><td>'.$row[sensor_temp3].'</td><td>'.$row[client_ip].'</td><td>'.$usredneno.'</td></tr>'; $count += 1; } while($row = mysqli_fetch_array($result)); }вот просто вывожу данные из бд
<?php include_once $_SERVER['DOCUMENT_ROOT'] . '/espimpt/includes/helpers.inc.php'; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title> EPS List devices </title> </head> <h1> EPS List devices </h1> <body> <?php try { $sql = 'SELECT `i_id`,`d_datetime`,`i_countimp`,`f_t1`,`f_t2`,`f_t3`,`f_t4`,`f_t5`,`f_t6` FROM `thermometers` ORDER BY `d_datetime` DESC'; $s = $pdo->prepare($sql); $s->execute(); $therm_rows = $s->fetchall(); } catch (PDOException $e) { $error = 'Error ' . $e->getMessage(); include $_SERVER['DOCUMENT_ROOT'] . '/espimpt/includes/error.html.php'; exit; } ?> <table border="1"> <tr ><th>Device ID</th><th>Date Time</th><th>Count imp</th><th>T1</th><th>T2</th><th>T3</th><th>T4</th><th>T5</th><th>T6</th></tr> <?php foreach ($therm_rows as $one_temper): ?> <tr> <td> <?php echo $one_temper['i_id'] ?> </td><td> <?php echo $one_temper['d_datetime'] ?> </td> <td> <?php echo $one_temper['i_countimp'] ?> </td><td> <?php echo $one_temper['f_t1'] ?> </td> <td> <?php echo $one_temper['f_t2'] ?> </td><td> <?php echo $one_temper['f_t3'] ?> </td> <td> <?php echo $one_temper['f_t4'] ?> </td><td> <?php echo $one_temper['f_t5'] ?> </td> <td> <?php echo $one_temper['f_t6'] ?> </td> </tr> <?php endforeach; ?> </table> </body> <p></p> <footer> © Андрей <a href="mailto:andycat2013@yandex.ru">andycat2013@yandex.ru</a> </footer> </html>А так можно?
//задаем массивы данных графиков $result = mysqli_query($connect, "SELECT * FROM `temperature` WHERE date_time >= NOW( ) - INTERVAL 10 MINUTE LIMIT 0 , 99"); if ($result) { $count = 1; $row = mysqli_fetch_array($result); do { $x1[$count-1]=$count-1; $y1[$count-1]=$row[sensor_temp1]; $x2[$count-1]=$count-1; $y2[$count-1]=$row[sensor_temp2]; $x3[$count-1]=$count-1; $y3[$count-1]=$row[sensor_temp3]; #echo '<tr><td>'.'0'.$count.'</td><td>'.$row[date_time].'</td><td>'.$row[sensor_temp1].'</td><td>'.$row[sensor_temp2].'</td><td>'.$row[sensor_temp3].'</td><td>'.$row[client_ip].'</td><td>'.$usredneno.'</td></tr>'; $count += 1; } while($row = mysqli_fetch_array($result)); }У Вас или не весь код или полный бред.
0. Таблица не начинается.
1. Зачем do {} while (); ?
2. X1 и так далее в таблице не участвуют, зачем они нужны ( к тому же они из count получаются)?
3. Таблица не заканчивается
Не весь код или полный бред, как по мне.
Так покрасивее будет собирать данные в массив
//задаем массивы данных графиков $result = mysqli_query($connect, "SELECT * FROM `temperature` WHERE date_time >= NOW( ) - INTERVAL 30 MINUTE LIMIT 0 , 30"); if ($result) { $row = mysqli_fetch_array($result); do { $y1[]=$row[sensor_temp1]; $y2[]=$row[sensor_temp2]; $y3[]=$row[sensor_temp3]; } while($row = mysqli_fetch_array($result)); }А так как переменная X равна индексу, её можно в массив и не собирать, лишняя трата памяти.
Для чего цикл do? Понятно, в переменной есть данные, забираем хотя бы один раз.
Таблицы тут нет, просто обработка результата запроса SQL )))
Вы точно тот же код видите, что и я? Там же как минимум тэги таблицы html. Ну а по поводу do {} while (); Вам не кажется бессмысленно (или лишним, или как ещё намекнуть?) одной и той же функции (читай действия) до цикла и в условии цикла? А если использовать while (){}; без предварительных действий что кардинально изменится?
Сами вчера не знали как в таблицу данные вывести, сегодня уже учите тому, что не постигли.
Вы точно то же код видите, что и я? Там же как минимум тэги таблицы html. Ну а по поводу do {} while (); Вам не кажется бессмысленно (или лишним, или как ещё намекнуть?) одной и той же функции (читай действия) до цикла и в условии цикла? А если использовать while (){}; без предварительных действий что нарушится?
Сами вчера не знали как в таблицу вывести, сегодня уже учите.
я и сегодня не знаю...
у меня не взлетало из-за тега <br>, один лживый тег в лживом PHP делал код полностью не рабочим, а всё остальное у меня было точь в точь как Гугл подсказал...
Да, осмелюсь сказать, в Вашей подсказке пулемёт (кавычки) были не той системы )))
Да, эта строка перед циклом явно лишняя )))

$row = mysqli_fetch_array($result);
do
Не вижу смысла с Вами дальше вести диалог, Вы не понимаете разницы между php и html, подсказкой и готовым ответом, да и между разными тэгами html (и учиться не пытаетесь, что для Вас более печально в этой ситуации).
Удачи Вам, постараюсь больше с Вами на этом форуме не пересекаться в диалогах. Гугл Вам в помощь. Не понятно только почему он Вам раньше моего примера не помог. Луна, наверное.
Хватит бодаться, данные получилось собрать и отрисовать, благодарю за помощь, до оптимизированной версии не дошёл, как пишет Дет - и так сойдёт )))

А я только щас заметил, что echo и последующее закомментировано. Вчера без очков не увидел. Молодец, красиво получилось.