www/includes/db_profile_mash.php

Sun, 04 Jul 2021 12:16:25 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 04 Jul 2021 12:16:25 +0200
changeset 766
86289b0c4a27
parent 736
d3d8e3b30a34
child 768
ae1195153fa2
permissions
-rw-r--r--

Version 0.3.38. Better error handling in inventory equipments. Check if equipment is in use before delete.

23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 require($_SERVER['DOCUMENT_ROOT']."/version.php");
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #Connect to the database
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (! $connect) {
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 }
77
a9f8de2d7b2b Fixed most charset problems. Added fpdf library. Added inventory pdf creation.
Michiel Broek <mbroek@mbse.eu>
parents: 50
diff changeset
11 mysqli_set_charset($connect, "utf8" );
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
13 $rescapers = array("'");
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
14 $rreplacements = array("\\'");
50
6d94167c2697 Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents: 45
diff changeset
15
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
16 if (isset($_POST['insert']) || isset($_POST['update'])) {
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
17 if (isset($_POST['insert'])) {
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
18 $sql = "INSERT INTO";
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
19 }
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
20 if (isset($_POST['update'])) {
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
21 $sql = "UPDATE";
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
22 }
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
23 $sql .= " `profile_mash` SET name='" . mysqli_real_escape_string($connect, $_POST['name']);
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
24 $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']);
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
25 $array = $_POST['steps'];
215
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
26 $comma = FALSE;
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
27 $steps = '[';
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
28 foreach($array as $key => $item) {
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
29 /*
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
30 * Manual encode to json. This eliminates the wrong UTF-8 encodings
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
31 * but also removes the unwanted fields.
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
32 */
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
33 if ($comma)
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
34 $steps.= ',';
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
35 $steps .= '{"step_name":"' . str_replace($rescapers,$rreplacements,$item['step_name']);
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
36 $steps .= '","step_type":' . $item['step_type'];
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
37 $steps .= ',"step_temp":' . $item['step_temp'];
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
38 $steps .= ',"end_temp":' . $item['end_temp'];
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
39 $steps .= ',"step_time":' . $item['step_time'];
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
40 $steps .= ',"ramp_time":' . $item['ramp_time'] . '}';
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
41 $comma = TRUE;
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
42 }
215
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
43 $steps .= ']';
83cee005d2d9 Fixed the utf-8 problems when storing json arrays on the server by using manual encoding. The json-encode function sucks for this project. Added step detail edit screen instead of on grid cell editing. This must go into the product and recipe editors too.
Michiel Broek <mbroek@mbse.eu>
parents: 214
diff changeset
44 $sql .= "', steps='" . $steps;
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
45 if (isset($_POST['insert'])) {
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
46 $sql .= "';";
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
47 }
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
48 if (isset($_POST['update'])) {
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
49 $sql .= "' WHERE record='" . $_POST['record'] . "';";
120
b28a3d6143bc Screen layout changes.
Michiel Broek <mbroek@mbse.eu>
parents: 77
diff changeset
50 }
716
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
51 //syslog(LOG_NOTICE, $sql);
214
3e240fd7ef13 Prep debug logs
Michiel Broek <mbroek@mbse.eu>
parents: 213
diff changeset
52
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 $result = mysqli_query($connect, $sql);
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 if (! $result) {
45
95251bedfab4 Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents: 38
diff changeset
55 syslog(LOG_NOTICE, "db_profile_mash: ".$sql." result: ".mysqli_error($connect));
716
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
56 //} else {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
57 // if (isset($_POST['update'])) {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
58 // syslog(LOG_NOTICE, "db_profile_mash: updated record ".$_POST['record']);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
59 // } else {
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
60 // $lastid = mysqli_insert_id($connect);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
61 // syslog(LOG_NOTICE, "db_profile_mash: inserted record ".$lastid);
57118e6a4bdb Remove log messages if database profile updates are successfull.
Michiel Broek <mbroek@mbse.eu>
parents: 215
diff changeset
62 // }
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 }
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 echo $result;
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
66 } else if (isset($_POST['delete'])) {
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 // DELETE COMMAND
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
68 $sql = "DELETE FROM `profile_mash` WHERE record='".$_POST['record']."';";
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 $result = mysqli_query($connect, $sql);
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 if (! $result) {
45
95251bedfab4 Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents: 38
diff changeset
71 syslog(LOG_NOTICE, "db_profile_mash: ".$sql." result: ".mysqli_error($connect));
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72 } else {
213
b0d484a5525e First step to make profile mash work with indexes and make the edit screen universal.
Michiel Broek <mbroek@mbse.eu>
parents: 120
diff changeset
73 syslog(LOG_NOTICE, "db_profile_mash: deleted record ".$_POST['record']);
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 }
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 echo $result;
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 } else {
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 // SELECT COMMAND
736
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
79 $query = "SELECT record,JSON_QUOTE(name),JSON_QUOTE(notes),steps FROM profile_mash ORDER BY name";
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
38
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
81 $mashprofiles = '[';
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
82 $comma = FALSE;
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
38
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
84 // Manual encode to JSON.
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
85 if ($comma) {
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
86 $mashprofiles .= ',';
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
87 }
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
88 $comma = TRUE;
736
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
89 $mashprofile = '{"record":' . $row['record'];
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
90 $mashprofile .= ',"name":' . $row['JSON_QUOTE(name)'];
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
91 $mashprofile .= ',"notes":' . $row['JSON_QUOTE(notes)'];
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
92 $mashprofile .= ',"steps":' . $row['steps'] . '}';
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
93 //syslog(LOG_NOTICE, $mashprofile);
d3d8e3b30a34 Use mariadb JSON support for mash and fermentation profiles.
Michiel Broek <mbroek@mbse.eu>
parents: 716
diff changeset
94 $mashprofiles .= $mashprofile;
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 }
38
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
96 $mashprofiles .= ']';
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
97 header("Content-type: application/json");
b7d44c98d609 Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents: 25
diff changeset
98 echo $mashprofiles;
23
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 }
4b157d7a1cee Added first part of mash profiles. Steps are in the database but not in the web ui.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 ?>

mercurial