Wed, 20 May 2020 21:49:09 +0200
Report any online status change via websocket broadcast. When starting, load all in memory tables sorted. The websocket status on the web pages has it's own panel. Prepared the menu system for dynamic updates.
<?php require_once($_SERVER['DOCUMENT_ROOT'].'/config.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/includes/formulas.php'); $link = mysqli_connect(DBASE_HOST,DBASE_USER,DBASE_PASS,DBASE_NAME); if (! $link) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } if (! mysqli_set_charset($link, "utf8" )) { echo "error"; return 1; } $result = mysqli_query($link, "SELECT * FROM inventory_waters ORDER BY name"); $row = mysqli_fetch_array($result); /* * Create beerxml output */ $xw = xmlwriter_open_memory(); xmlwriter_set_indent($xw, 1); $res = xmlwriter_set_indent_string($xw, ' '); xmlwriter_start_document($xw, '1.0', 'UTF-8'); xmlwriter_start_element($xw, 'WATERS'); while ($row = mysqli_fetch_array($result)) { xmlwriter_start_element($xw, 'WATER'); xmlwriter_start_element($xw, 'VERSION'); xmlwriter_text($xw, '1'); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'NAME'); xmlwriter_text($xw, $row['name']); xmlwriter_end_element($xw); if (floatval($row['cost']) > 0) { xmlwriter_start_element($xw, 'COST'); xmlwriter_text($xw, sprintf("%.5f",floatval($row['cost']))); xmlwriter_end_element($xw); } if (strlen($row['notes'])) { xmlwriter_start_element($xw, 'NOTES'); xmlwriter_text($xw, $row['notes']); xmlwriter_end_element($xw); } xmlwriter_start_element($xw, 'CALCIUM'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['calcium']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'BICARBONATE'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['bicarbonate']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'SULFATE'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['sulfate']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'CHLORIDE'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['chloride']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'SODIUM'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['sodium']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'MAGNESIUM'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['magnesium']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'TOTAL_ALKALINITY'); xmlwriter_text($xw, sprintf("%.4f",floatval($row['total_alkalinity']))); xmlwriter_end_element($xw); xmlwriter_start_element($xw, 'PH'); xmlwriter_text($xw, sprintf("%.5f",floatval($row['ph']))); xmlwriter_end_element($xw); xmlwriter_end_element($xw); // WATER } xmlwriter_end_element($xw); // WATERS $beerxml = xmlwriter_output_memory($xw); Header('Content-type: text/xml'); header('Content-Disposition: attachment; filename="waters.xml"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Pragma: no-cache'); header('Content-Length: '.strlen($beerxml)); exit($beerxml);