www/includes/db_product.php

changeset 115
ad31f4bd4036
parent 114
4935e86b2775
child 119
ae5e8d740173
--- a/www/includes/db_product.php	Wed Nov 28 21:57:06 2018 +0100
+++ b/www/includes/db_product.php	Thu Nov 29 23:21:42 2018 +0100
@@ -10,6 +10,9 @@
 }
 mysqli_set_charset($connect, "utf8" );
 
+$escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
+$replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
+
 
 if (isset($_POST['insert']) || isset($_POST['update'])) {
 	if (isset($_POST['insert'])) {
@@ -60,7 +63,7 @@
 	$sql .= "', eq_kettle_height='" . $_POST['eq_kettle_height'];
 	$sql .= "', eq_mash_volume='" . $_POST['eq_mash_volume'];
 	$sql .= "', eq_efficiency='" . $_POST['eq_efficiency'];
-
+	$sql .= "', eq_top_up_water='" . $_POST['eq_top_up_water'];
 
 	syslog(LOG_NOTICE, $sql);
 	if (isset($_POST['insert'])) {
@@ -70,18 +73,19 @@
 		$sql .= "' WHERE record='" . $_POST['record'] . "';";
 	}
 
-	$result = mysqli_query($connect, $sql);
-	if (! $result) {
-		syslog(LOG_NOTICE, "db_product: result: ".mysqli_error($connect));
-	} else {
-		if (isset($_POST['update'])) {
-			syslog(LOG_NOTICE, "db_product: updated record ".$_POST['record']);
-		} else {
-			$lastid = mysqli_insert_id($connect);
-			syslog(LOG_NOTICE, "db_product: inserted record ".$lastid);
-		}
-	}
-	echo $result;
+
+//	$result = mysqli_query($connect, $sql);
+//	if (! $result) {
+//		syslog(LOG_NOTICE, "db_product: result: ".mysqli_error($connect));
+//	} else {
+//		if (isset($_POST['update'])) {
+//			syslog(LOG_NOTICE, "db_product: updated record ".$_POST['record']);
+//		} else {
+//			$lastid = mysqli_insert_id($connect);
+//			syslog(LOG_NOTICE, "db_product: inserted record ".$lastid);
+//		}
+//	}
+//	echo $result;
 
 } else if (isset($_POST['delete'])) {
 	// DELETE COMMAND
@@ -120,107 +124,167 @@
 	/*
 	 * Default, select all
 	 */
-	$query = "SELECT * FROM prod_main ORDER BY birth,code;";
+	if (isset($_GET['record'])) {
+		syslog(LOG_NOTICE, "Request record GET " . $_GET['record']);
+	} else if (isset($_POST['record'])) {
+		syslog(LOG_NOTICE, "Request record POST " . $_POST['record']);
+	} else {
+		syslog(LOG_NOTICE, "No record requested");
+	}
+	$query = "SELECT * FROM prod_main LEFT JOIN prod_recipes ON prod_main.uuid = prod_recipes.uuid ORDER BY birth,code;";
 	$result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
+	$brews = '[';
+	$comma = FALSE;
 	while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
-		$brews[] = array(
-			'record' => $row['record'],
-			'uuid' => $row['uuid'],
-			'name' => $row['name'],
-			'code' => $row['code'],
-			'birth' => $row['birth'],
-			'stage' => $row['stage'],
-			'notes' => $row['notes'],
-			'log_brew' => $row['log_brew'],
-			'log_fermentation' => $row['log_fermentation'],
-			'inventory_reduced' => $row['inventory_reduced'],
-			'locked' => $row['locked'],
-			'eq_name' => $row['eq_name'],
-			'eq_notes' => $row['eq_notes'],
-			'eq_boil_size' => $row['eq_boil_size'],
-			'eq_batch_size' => $row['eq_batch_size'],
-			'eq_tun_volume' => $row['eq_tun_volume'],
-			'eq_tun_weight' => $row['eq_tun_weight'],
-			'eq_tun_specific_heat' => $row['eq_tun_specific_heat'],
-			'eq_tun_material' => $row['eq_tun_material'],
-			'eq_tun_height' => $row['eq_tun_height'],
-			'eq_top_up_water' => $row['eq_top_up_water'],
-			'eq_trub_chiller_loss' => $row['eq_trub_chiller_loss'],
-			'eq_evap_rate' => $row['eq_evap_rate'],
-			'eq_boil_time' => $row['eq_boil_time'],
-			'eq_calc_boil_volume' => $row['eq_calc_boil_volume'],
-			'eq_top_up_kettle' => $row['eq_top_up_kettle'],
-			'eq_hop_utilization' => $row['eq_hop_utilization'],
-			'eq_lauter_volume' => $row['eq_lauter_volume'],
-			'eq_lauter_height' => $row['eq_lauter_height'],
-			'eq_lauter_deadspace' => $row['eq_lauter_deadspace'],
-			'eq_kettle_volume' => $row['eq_kettle_volume'],
-			'eq_kettle_height' => $row['eq_kettle_height'],
-			'eq_mash_volume' => $row['eq_mash_volume'],
-			'eq_efficiency' => $row['eq_efficiency'],
-			'brew_date_start' => $row['brew_date_start'],
-			'brew_mash_ph' => $row['brew_mash_ph'],
-			'brew_mash_sg' => $row['brew_mash_sg'],
-			'brew_sparge_temperature' => $row['brew_sparge_temperature'],
-			'brew_sparge_volume' => $row['brew_sparge_volume'],
-			'brew_preboil_volume' => $row['brew_preboil_volume'],
-			'brew_preboil_sg' => $row['brew_preboil_sg'],
-			'brew_preboil_ph' => $row['brew_preboil_ph'],
-			'brew_aboil_volume' => $row['brew_aboil_volume'],
-			'brew_aboil_sg' => $row['brew_aboil_sg'],
-			'brew_aboil_ph' => $row['brew_aboil_ph'],
-			'brew_aboil_efficiency' => $row['brew_aboil_efficiency'],
-			'brew_cooling_method' => $row['brew_cooling_method'],
-			'brew_cooling_time' => $row['brew_cooling_time'],
-			'brew_cooling_to' => $row['brew_cooling_to'],
-			'brew_whirlpool9' => $row['brew_whirlpool9'],
-			'brew_whirlpool7' => $row['brew_whirlpool7'],
-			'brew_whirlpool6' => $row['brew_whirlpool6'],
-			'brew_whirlpool2' => $row['brew_whirlpool2'],
-			'brew_fermenter_volume' => $row['brew_fermenter_volume'],
-			'brew_fermenter_extrawater' => $row['brew_fermenter_extrawater'],
-			'brew_aeration_time' => $row['brew_aeration_time'],
-			'brew_aeration_speed' => $row['brew_aeration_speed'],
-			'brew_aeration_type' => $row['brew_aeration_type'],
-			'brew_fermenter_sg' => $row['brew_fermenter_sg'],
-			'brew_fermenter_ibu' => $row['brew_fermenter_ibu'],
-			'brew_date_end' => $row['brew_date_end'],
-			'brew_log_available' => $row['brew_log_available'],
-			'primary_start_temp' => $row['primary_start_temp'],
-			'primary_max_temp' => $row['primary_max_temp'],
-			'primary_end_temp' => $row['primary_end_temp'],
-			'primary_end_sg' => $row['primary_end_sg'],
-			'primary_end_date' => $row['primary_end_date'],
-			'secondary_temp' => $row['secondary_temp'],
-			'secondary_end_date' => $row['secondary_end_date'],
-			'tertiary_temp' => $row['tertiary_temp'],
-			'package_date' => $row['package_date'],
-			'bottle_amount' => $row['bottle_amount'],
-			'bottle_carbonation' => $row['bottle_carbonation'],
-			'bottle_priming_sugar' => $row['bottle_priming_sugar'],
-			'bottle_priming_amount' => $row['bottle_priming_amount'],
-			'bottle_carbonation_temp' => $row['bottle_carbonation_temp'],
-			'keg_amount' => $row['keg_amount'],
-			'keg_carbonation' => $row['keg_carbonation'],
-			'keg_priming_sugar' => $row['keg_priming_sugar'],
-			'keg_priming_amount' => $row['keg_priming_amount'],
-			'keg_carbonation_temp' => $row['keg_carbonation_temp'],
-			'keg_forced_carb' => $row['keg_forced_carb'],
-			'keg_pressure' => $row['keg_pressure'],
-			'keg_priming_factor' => $row['keg_priming_factor'],
-			'taste_notes' => $row['taste_notes'],
-			'taste_rate' => $row['taste_rate'],
-			'taste_date' => $row['taste_date'],
-			'taste_color' => $row['taste_color'],
-			'taste_transparency' => $row['taste_transparency'],
-			'taste_head' => $row['taste_head'],
-			'taste_aroma' => $row['taste_aroma'],
-			'taste_taste' => $row['taste_taste'],
-			'taste_mouthfeel' => $row['taste_mouthfeel'],
-			'taste_aftertaste' => $row['taste_aftertaste']
-		);
+		// Manual encode to JSON.
+		if ($comma)
+			$brews .= ',';
+		$comma = TRUE;
+		$brew  = '{"record":' . $row['record'];
+		$brew .= ',"uuid":"' . str_replace($escapers, $replacements, $row['uuid']);
+		$brew .= '","name":"' . str_replace($escapers, $replacements, $row['name']);
+		$brew .= '","code":"' . str_replace($escapers, $replacements, $row['code']);
+		$brew .= '","birth":"' . str_replace($escapers, $replacements, $row['birth']);
+		$brew .= '","stage":"' . str_replace($escapers, $replacements, $row['stage']);
+		$brew .= '","notes":"' . str_replace($escapers, $replacements, $row['notes']);
+		$brew .= '","log_brew":' . $row['log_brew'];
+		$brew .= ',"log_fermentation":' . $row['log_fermentation'];
+		$brew .= ',"inventory_reduced":' . $row['inventory_reduced'];
+		$brew .= ',"locked":' . $row['locked'];
+		$brew .= ',"eq_name":"' . str_replace($escapers, $replacements, $row['eq_name']);
+		$brew .= '","eq_notes":"' . str_replace($escapers, $replacements, $row['eq_notes']);
+		$brew .= '","eq_boil_size":' . floatval($row['eq_boil_size']);
+		$brew .= ',"eq_batch_size":' . floatval($row['eq_batch_size']);
+		$brew .= ',"eq_tun_volume":' . floatval($row['eq_tun_volume']);
+		$brew .= ',"eq_tun_weight":' . floatval($row['eq_tun_weight']);
+		$brew .= ',"eq_tun_specific_heat":' . floatval($row['eq_tun_specific_heat']);
+		$brew .= ',"eq_tun_material":"' . $row['eq_tun_material'];
+		$brew .= '","eq_tun_height":' . floatval($row['eq_tun_height']);
+		$brew .= ',"eq_top_up_water":' . floatval($row['eq_top_up_water']);
+		$brew .= ',"eq_trub_chiller_loss":' . floatval($row['eq_trub_chiller_loss']);
+		$brew .= ',"eq_evap_rate":' . floatval($row['eq_evap_rate']);
+		$brew .= ',"eq_boil_time":' . floatval($row['eq_boil_time']);
+		$brew .= ',"eq_calc_boil_volume":' . $row['eq_calc_boil_volume'];
+		$brew .= ',"eq_calc_boil_volume":' . floatval($row['eq_calc_boil_volume']);
+		$brew .= ',"eq_top_up_kettle":' . floatval($row['eq_top_up_kettle']);
+		$brew .= ',"eq_hop_utilization":' . floatval($row['eq_hop_utilization']);
+		$brew .= ',"eq_lauter_volume":' . floatval($row['eq_lauter_volume']);
+		$brew .= ',"eq_lauter_height":' . floatval($row['eq_lauter_height']);
+		$brew .= ',"eq_lauter_deadspace":' . floatval($row['eq_lauter_deadspace']);
+		$brew .= ',"eq_kettle_volume":' . floatval($row['eq_kettle_volume']);
+		$brew .= ',"eq_kettle_height":' . floatval($row['eq_kettle_height']);
+		$brew .= ',"eq_mash_volume":' . floatval($row['eq_mash_volume']);
+		$brew .= ',"eq_efficiency":' . floatval($row['eq_efficiency']);
+		$brew .= ',"eq_top_up_water":' . floatval($row['eq_top_up_water']);
+		$brew .= ',"brew_date_start":"' . $row['brew_date_start'];
+		$brew .= '","brew_mash_ph":' . floatval($row['brew_mash_ph']);
+		$brew .= ',"brew_mash_sg":' . floatval($row['brew_mash_sg']);
+		$brew .= ',"brew_sparge_temperature":' . floatval($row['brew_sparge_temperature']);
+		$brew .= ',"brew_sparge_volume":' . floatval($row['brew_sparge_volume']);
+		$brew .= ',"brew_preboil_volume":' . floatval($row['brew_preboil_volume']);
+		$brew .= ',"brew_preboil_sg":' . floatval($row['brew_preboil_sg']);
+		$brew .= ',"brew_preboil_ph":' . floatval($row['brew_preboil_ph']);
+		$brew .= ',"brew_aboil_volume":' . floatval($row['brew_aboil_volume']);
+		$brew .= ',"brew_aboil_sg":' . floatval($row['brew_aboil_sg']);
+		$brew .= ',"brew_aboil_ph":' . floatval($row['brew_aboil_ph']);
+		$brew .= ',"brew_aboil_efficiency":' . floatval($row['brew_aboil_efficiency']);
+		$brew .= ',"brew_cooling_method":"' . $row['brew_cooling_method'];
+		$brew .= '","brew_cooling_time":' . floatval($row['brew_cooling_time']);
+		$brew .= ',"brew_cooling_to":' . floatval($row['brew_cooling_to']);
+		$brew .= ',"brew_whirlpool9":' . floatval($row['brew_whirlpool9']);
+		$brew .= ',"brew_whirlpool7":' . floatval($row['brew_whirlpool7']);
+		$brew .= ',"brew_whirlpool6":' . floatval($row['brew_whirlpool6']);
+		$brew .= ',"brew_whirlpool2":' . floatval($row['brew_whirlpool2']);
+		$brew .= ',"brew_fermenter_volume":' . floatval($row['brew_fermenter_volume']);
+		$brew .= ',"brew_fermenter_extrawater":' . floatval($row['brew_fermenter_extrawater']);
+		$brew .= ',"brew_aeration_time":' . floatval($row['brew_aeration_time']);
+		$brew .= ',"brew_aeration_speed":' . floatval($row['brew_aeration_speed']);
+		$brew .= ',"brew_aeration_type":' . floatval($row['brew_aeration_type']);
+		$brew .= ',"brew_fermenter_sg":' . floatval($row['brew_fermenter_sg']);
+		$brew .= ',"brew_fermenter_ibu":' . floatval($row['brew_fermenter_ibu']);
+		$brew .= ',"brew_date_end":"' . $row['brew_date_end'];
+		$brew .= '","brew_log_available":' . $row['brew_log_available'];
+		$brew .= ',"primary_start_temp":' . floatval($row['primary_start_temp']);
+		$brew .= ',"primary_max_temp":' . floatval($row['primary_max_temp']);
+		$brew .= ',"primary_end_temp":' . floatval($row['primary_end_temp']);
+		$brew .= ',"primary_end_sg":' . floatval($row['primary_end_sg']);
+		$brew .= ',"primary_end_date":"' . $row['primary_end_date'];
+		$brew .= '","secondary_temp":' . floatval($row['secondary_temp']);
+		$brew .= ',"secondary_end_date":"' . $row['secondary_end_date'];
+		$brew .= '","tertiary_temp":' . floatval($row['tertiary_temp']);
+		$brew .= ',"package_date":"' . $row['package_date'];
+		$brew .= '","bottle_amount":' . floatval($row['bottle_amount']);
+		$brew .= ',"bottle_carbonation":' . floatval($row['bottle_carbonation']);
+		$brew .= ',"bottle_priming_sugar":"' . str_replace($escapers, $replacements, $row['bottle_priming_sugar']);
+		$brew .= '","bottle_priming_amount":' . floatval($row['bottle_priming_amount']);
+		$brew .= ',"bottle_carbonation_temp":' . floatval($row['bottle_carbonation_temp']);
+		$brew .= ',"keg_amount":' . floatval($row['keg_amount']);
+		$brew .= ',"keg_carbonation":' . floatval($row['keg_carbonation']);
+		$brew .= ',"keg_priming_sugar":"' . str_replace($escapers, $replacements, $row['keg_priming_sugar']);
+		$brew .= '","keg_priming_amount":' . floatval($row['keg_priming_amount']);
+		$brew .= ',"keg_carbonation_temp":' . floatval($row['keg_carbonation_temp']);
+		$brew .= ',"keg_forced_carb":' . floatval($row['keg_forced_carb']);
+		$brew .= ',"keg_pressure":' . floatval($row['keg_pressure']);
+		$brew .= ',"keg_priming_factor":' . floatval($row['keg_priming_factor']);
+		$brew .= ',"taste_notes":"' . str_replace($escapers, $replacements, $row['taste_notes']);
+		$brew .= '","taste_rate":' . floatval($row['taste_rate']);
+		$brew .= ',"taste_date":"' . str_replace($escapers, $replacements, $row['taste_date']);
+		$brew .= '","taste_color":"' . str_replace($escapers, $replacements, $row['taste_color']);
+		$brew .= '","taste_transparency":"' . str_replace($escapers, $replacements, $row['taste_transparency']);
+		$brew .= '","taste_head":"' . str_replace($escapers, $replacements, $row['taste_head']);
+		$brew .= '","taste_aroma":"' . str_replace($escapers, $replacements, $row['taste_aroma']);
+		$brew .= '","taste_taste":"' . str_replace($escapers, $replacements, $row['taste_taste']);
+		$brew .= '","taste_mouthfeel":"' . str_replace($escapers, $replacements, $row['taste_mouthfeel']);
+		$brew .= '","taste_aftertaste":"' . str_replace($escapers, $replacements, $row['taste_aftertaste']);
+		$brew .= '","st_guide":"' . str_replace($escapers, $replacements, $row['st_guide']);
+		$brew .= '","st_letter":"' . str_replace($escapers, $replacements, $row['st_letter']);
+		$brew .= '","st_name":"'  . str_replace($escapers, $replacements, $row['st_name']);
+		$brew .= '","st_type":"' . str_replace($escapers, $replacements, $row['st_type']);
+		$brew .= '","st_category":"' . str_replace($escapers, $replacements, $row['st_category']);
+		$brew .= '","st_category_number":' . floatval($row['st_category_number']);
+		$brew .= ',"st_og_min":' . floatval($row['st_og_min']);
+		$brew .= ',"st_og_max":' . floatval($row['st_og_max']);
+		$brew .= ',"st_fg_min":' . floatval($row['st_fg_min']);
+		$brew .= ',"st_fg_max":' . floatval($row['st_fg_max']);
+		$brew .= ',"st_ibu_min":' . floatval($row['st_ibu_min']);
+		$brew .= ',"st_ibu_max":' . floatval($row['st_ibu_max']);
+		$brew .= ',"st_color_min":' . floatval($row['st_color_min']);
+		$brew .= ',"st_color_max":' . floatval($row['st_color_max']);
+		$brew .= ',"st_carb_min":' . floatval($row['st_carb_min']);
+		$brew .= ',"st_carb_max":' . floatval($row['st_carb_max']);
+		$brew .= ',"st_abv_min":' . floatval($row['st_abv_min']);
+		$brew .= ',"st_abv_max":' . floatval($row['st_abv_max']);
+		$brew .= ',"r_notes":"' . str_replace($escapers, $replacements, $row['notes']);
+		$brew .= '","type":"' . $row['type'];
+		$brew .= '","batch_size":' . floatval($row['batch_size']);
+		$brew .= ',"boil_size":' . floatval($row['boil_size']);
+		$brew .= ',"boil_time":' . floatval($row['boil_time']);
+		$brew .= ',"efficiency":' . floatval($row['efficiency']);
+		$brew .= ',"est_og":' . floatval($row['est_og']);
+		$brew .= ',"est_fg":' . floatval($row['est_fg']);
+		$brew .= ',"est_abv":' . floatval($row['est_abv']);
+		$brew .= ',"est_carb":' . floatval($row['est_carb']);
+		$brew .= ',"est_color":' . floatval($row['est_color']);
+		$brew .= ',"color_method":"' . $row['color_method'];
+		$brew .= '","est_ibu":' . floatval($row['est_ibu']);
+		$brew .= ',"ibu_method":"' . $row['ibu_method'];
+		$brew .= '","mash_sparge_temp":' . $row['mash_sparge_temp'];
+		$brew .= ',"mash_ph":' . $row['mash_ph'];
+		$brew .= ',"mash_name":"' . $row['mash_name'];
+		$brew .= '","fermentables":' . $row['json_fermentables'];
+		$brew .= ',"hops":' . $row['json_hops'];
+		$brew .= ',"miscs":' . $row['json_miscs'];
+		$brew .= ',"yeasts":' . $row['json_yeasts'];
+		$brew .= ',"waters":' . $row['json_waters'];
+		$brew .= ',"mashs":' . $row['json_mashs'];
+		$brew .= '}';
+//		syslog(LOG_NOTICE, $brew);
+		$brews .= $brew;
+//		syslog(LOG_NOTICE, 'Size: '.strlen($brews).PHP_EOL);
 	}
-//	syslog(LOG_NOTICE, json_encode($brews));
-	echo json_encode($brews);
+	$brews .= ']';
+//	syslog(LOG_NOTICE, $brews);
+	header("Content-type: application/json");
+	echo $brews;
 }
 ?>

mercurial