www/includes/db_profile_fermentation.php

Sun, 23 May 2021 16:41:35 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 23 May 2021 16:41:35 +0200
changeset 752
f68e3bbc1ada
parent 736
d3d8e3b30a34
child 762
bc3cfd98a212
permissions
-rw-r--r--

Fermentables, hops, miscs and yeast now have tests against the added moment with the brewing stage. Added to inventory edit rows, delete rows, and pick choices for the moment to add or edit. Some more popups to explain certain blocks.

186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 require($_SERVER['DOCUMENT_ROOT']."/version.php");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #Connect to the database
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (! $connect) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 mysqli_set_charset($connect, "utf8" );
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 $rescapers = array("'");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 $rreplacements = array("\\'");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
16 if (isset($_POST['insert']) || isset($_POST['update'])) {
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
17 if (isset($_POST['insert'])) {
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18 $sql = "INSERT INTO `profile_fermentation` SET ";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 }
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
20 if (isset($_POST['update'])) {
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 $sql = "UPDATE `profile_fermentation` SET ";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
24 if (isset($_POST['uuid']) && (strlen($_POST['uuid']) == 36)) {
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
25 $sql .= "uuid='" . $_POST['uuid'];
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 $uuid = str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid'));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 $sql .= "uuid='" . $uuid;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
31 $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']);
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
32 $sql .= "', inittemp_lo='" . floatval($_POST['inittemp_lo']);
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
33 $sql .= "', inittemp_hi='" . floatval($_POST['inittemp_hi']);
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
34 ($_POST['fridgemode'] == 'true') ? $sql .= "', fridgemode='1" : $sql .= "', fridgemode='0";
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
35 $array = $_POST['steps'];
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 // Don't believe given duration and number of steps, recalculate.
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 $duration = 0;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 $totalsteps = 0;
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
39 $steps = '[';
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 foreach($array as $key => $item) {
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
41 if ($totalsteps > 0)
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
42 $steps.= ',';
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 $totalsteps++;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 $duration += $item['steptime'] + $item['resttime'];
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
45 $steps .= '{"name":"' . str_replace($rescapers,$rreplacements,$item['name']);
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
46 $steps .= '","steptime":' . $item['steptime'];
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
47 $steps .= ',"resttime":' . $item['resttime'];
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
48 $steps .= ',"target_lo":' . $item['target_lo'];
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
49 $steps .= ',"target_hi":' . $item['target_hi'];
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
50 $steps .= ',"fridgemode":' . $item['fridgemode'] . '}';
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 }
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
52 $steps .= ']';
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 $sql .= "', totalsteps='" . $totalsteps;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 $sql .= "', duration='" . $duration;
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
55 syslog(LOG_NOTICE, $steps);
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array));
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
57 if (isset($_POST['insert'])) {
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 $sql .= "';";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 }
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
60 if (isset($_POST['update'])) {
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
61 $sql .= "' WHERE record='" . $_POST['record'] . "';";
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 }
716
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
63 //syslog(LOG_NOTICE, $sql);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
64
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 $result = mysqli_query($connect, $sql);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 if (! $result) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect));
716
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
68 //} else {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
69 // if (isset($_POST['update'])) {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
70 // syslog(LOG_NOTICE, "db_profile_fermentation: updated record ".$_POST['record']);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
71 // } else {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
72 // $lastid = mysqli_insert_id($connect);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
73 // syslog(LOG_NOTICE, "db_profile_fermentation: inserted record ".$lastid);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 217
diff changeset
74 // }
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 echo $result;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
78 } else if (isset($_POST['delete'])) {
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 // DELETE COMMAND
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
80 $sql = "DELETE FROM `profile_fermentation` WHERE record='".$_POST['record']."';";
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 $result = mysqli_query($connect, $sql);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 if (! $result) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 } else {
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
85 syslog(LOG_NOTICE, "db_profile_fermentation: deleted record ".$_POST['record']);
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 echo $result;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 // SELECT COMMAND
736
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
91 $query = "SELECT record,JSON_QUOTE(uuid),JSON_QUOTE(name),inittemp_lo,inittemp_hi,fridgemode,totalsteps,duration,steps ";
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
92 $query .= "FROM profile_fermentation ORDER BY name;";
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 $profiles = '[';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 $comma = FALSE;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 // Manual encode to JSON.
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 if ($comma) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 $profiles .= ',';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 $comma = TRUE;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 $profiles .= '{"record":' . $row['record'];
736
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
103 $profiles .= ',"uuid":' . $row['JSON_QUOTE(uuid)'];
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
104 $profiles .= ',"name":' . $row['JSON_QUOTE(name)'];
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
105 $profiles .= ',"inittemp_lo":' . $row['inittemp_lo'];
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 $profiles .= ',"inittemp_hi":' . $row['inittemp_hi'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 $profiles .= ',"fridgemode":' . $row['fridgemode'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
108 $profiles .= ',"totalsteps":' . $row['totalsteps'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 $profiles .= ',"duration":' . $row['duration'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 $profiles .= ',"steps":' . $row['steps'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 $profiles .= '}';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 $profiles .= ']';
217
318aab371497 Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents: 189
diff changeset
114 // syslog(LOG_NOTICE, $profiles);
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
115 header("Content-type: application/json");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
116 echo $profiles;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
117 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
118 ?>

mercurial