Diskuze: Pomoc neprogramátorovi s PHP kodem - vyčítání dat z mySQL
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Od tabulky ke grafu už to není moc složité. Většina javascriptových knihoven vyžaduje data jako json, tím se ti práce v php značně zkrátí. Chtělo by to asi být konkrétnější, asi nikdo to tu nenapíše celý. Co máš všechno hotovýho a kde konkrétně jsi se zasek?
Vytvor si ponuku prípadne mi napíš PM za nejaké smiešne drobné ti to vytvorím
Mám iný návrh.
Arduino nepošle dáta do NAS, ale uloží si ich v MySQL bežiacom priamo na
Arduine.
Zároveň pobeží na Arduine Node.js server s programom, ktorý , ktorí bude
poskytovať API volania.
Bude to tak naprosto nezávislé. Stačí Arduino pripojiť na internet a akákoľvek aplikácia, aj SPA, sa bude naň môcť pripojiť a zobraziť si z neho dáta.
Ahoj Pavel. Pošlo teda čo máš a vygoogli si projekt John Five. Je to Node server bežiaci na Arduine, ktorý vie komunikovať so senzormi. Nájdi tam, či podporuje aj Tvoje senzory a tiež mi to napíš.
Tak děkuji,
nakopnutí směrem k JSON + děkuji za odkaz na HOW-TO + pomoc s překladem co
já pouze ruštinou políbený nezvládl ....
Toto je výsledek
Graf
PS: jak dotyčný napsal - prokousej se tím a nebude příště nic jednoduššího, moc děkuji za online pomoc s překladem a opravy v kodu ....
Pavel napíš mi PM dohodneme sa na nejakom komunikačnom servery a vrhneme sa do toho ak si teda nad tým nechceš lámať hlavu ...
Ak je to teda pre detská tak to skúsim...
Tak rozchozeno, 100% funkční včetně vyčítání posledních X dotazů.
Děkuji všem co pomohly jak nasměrováním, tak online pomocí.
Jediné co blbne je, že se někdy nezapíší hodnoty z Arduina do mySQL, ale
to se doladí.
Je zvykem sem házet zdrojáky jako řešení ?
Konečné řešení, Google graf ze 3 měřených hodnot.
mySQL
ID(int); timestamp(TIMESTAMP); teplota(float); napeti(float); solar(float)
<?php
/* Database Name */
$DB_NAME = 'database';
/* Database Host */
$DB_HOST = 'localhost';
/* Your Database User Name and Passowrd */
$DB_USER = 'user';
$DB_PASS = '123456';
/* Establish the database connection */
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* vyber tabulku pro graf */
$result = $mysqli->query('SELECT * FROM arduino_data');
$rows = array();
$table = array();
$table['cols'] = array(
/* vyber data zobrazovaná v grafu */
array('label' => 'timestamp', 'type' => 'string'),
array('label' => 'teplota', 'type' => 'number'),
array('label' => 'napeti', 'type' => 'number'),
array('label' => 'solar', 'type' => 'number')
);
/* Extract the information from $result */
foreach($result as $r) {
$temp = array();
// The following line will be used to slice the Pie chart
$temp[] = array('v' => (string) $r['timestamp']);
// Values of the each slice
$temp[] = array('v' => (float) $r['teplota']);
//$rows[] = array('c' => $temp);
$temp[] = array('v' => (float) $r['napeti']);
//$rows[] = array('c' => $temp);
$temp[] = array('v' => (float) $r['solar']);
$rows[] = array('c' => $temp);
}
$table['rows'] = $rows;
// convert data into JSON format
$jsonTable = json_encode($table);
echo $jsonTable;
?>
<html>
<head>
<!--Load the Ajax API-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.load('visualization', '1', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);
function drawChart() {
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(<?=$jsonTable?>);
var options = {
title: 'Teplota - ARDUINO 01',
//is3D: 'true',
width: 800,
height: 600
};
// Instantiate and draw our chart, passing in some options.
// Do not forget to check your div ID
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<!--this is the div that will hold the pie chart-->
<div id="chart_div"></div>
</body>
</html>
Zobrazeno 11 zpráv z 11.