Tue, 31 Aug 2021 20:48:37 +0200
Split batch, adjust mash step volume. In the duplicated log_brew handle the missing values. In save product, round the mash step sg to 4 decimals. In prod_edit, ingredients are stored as strings, not arrays. This triggered a memory corruption that only happened in rare circumstances. Don't fix mash step fields in the javascript, it is already done during load from the database. Calculation of the mash volume is rounded to 6 decimals. Enter mash step Brix/Plato value, the SG result is rounded to 4 decimals.
28 | 1 | <?php |
2 | ||
3 | require($_SERVER['DOCUMENT_ROOT']."/config.php"); | |
4 | require($_SERVER['DOCUMENT_ROOT']."/version.php"); | |
5 | ||
6 | #Connect to the database | |
7 | $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); | |
8 | if (! $connect) { | |
9 | die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); | |
10 | } | |
77
a9f8de2d7b2b
Fixed most charset problems. Added fpdf library. Added inventory pdf creation.
Michiel Broek <mbroek@mbse.eu>
parents:
48
diff
changeset
|
11 | mysqli_set_charset($connect, "utf8" ); |
28 | 12 | |
768
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
13 | $response = array( |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
14 | 'error' => false, |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
15 | 'msg' => 'Ok', |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
16 | ); |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
17 | |
217
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
18 | 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:
77
diff
changeset
|
19 | if (isset($_POST['insert'])) { |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
20 | $sql = "INSERT INTO `profile_styles` SET "; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
21 | } |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
22 | 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:
77
diff
changeset
|
23 | $sql = "UPDATE `profile_styles` SET "; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
24 | } |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
25 | |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
26 | $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:
77
diff
changeset
|
27 | $sql .= "', category='" . mysqli_real_escape_string($connect, $_POST['category']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
28 | $sql .= "', category_number='" . $_POST['category_number']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
29 | $sql .= "', style_letter='" . mysqli_real_escape_string($connect, $_POST['style_letter']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
30 | $sql .= "', style_guide='" . mysqli_real_escape_string($connect, $_POST['style_guide']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
31 | $sql .= "', type='" . $_POST['type']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
32 | $sql .= "', og_min='" . $_POST['og_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
33 | $sql .= "', og_max='" . $_POST['og_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
34 | $sql .= "', fg_min='" . $_POST['fg_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
35 | $sql .= "', fg_max='" . $_POST['fg_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
36 | $sql .= "', ibu_min='" . $_POST['ibu_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
37 | $sql .= "', ibu_max='" . $_POST['ibu_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
38 | $sql .= "', color_min='" . $_POST['color_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
39 | $sql .= "', color_max='" . $_POST['color_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
40 | $sql .= "', carb_min='" . $_POST['carb_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
41 | $sql .= "', carb_max='" . $_POST['carb_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
42 | $sql .= "', abv_min='" . $_POST['abv_min']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
43 | $sql .= "', abv_max='" . $_POST['abv_max']; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
44 | $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
45 | $sql .= "', profile='" . mysqli_real_escape_string($connect, $_POST['profile']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
46 | $sql .= "', ingredients='" . mysqli_real_escape_string($connect, $_POST['ingredients']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
47 | $sql .= "', examples='" . mysqli_real_escape_string($connect, $_POST['examples']); |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
48 | if (isset($_POST['insert'])) { |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
49 | $sql .= "';"; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
50 | } |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
51 | 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:
77
diff
changeset
|
52 | $sql .= "' WHERE record='" . $_POST['record'] . "';"; |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
53 | } |
28 | 54 | $result = mysqli_query($connect, $sql); |
55 | if (! $result) { | |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
37
diff
changeset
|
56 | syslog(LOG_NOTICE, "db_profile_styles: ".$sql." result: ".mysqli_error($connect)); |
768
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
57 | $response['error'] = true; |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
58 | $response['msg'] = "SQL fout: ".mysqli_error($connect); |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
59 | } |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
60 | exit(json_encode($response)); |
28 | 61 | |
217
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
62 | } else if (isset($_POST['delete'])) { |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
63 | // DELETE COMMAND |
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
64 | $sql = "DELETE FROM `profile_styles` WHERE record='".$_POST['record']."';"; |
28 | 65 | $result = mysqli_query($connect, $sql); |
66 | if (! $result) { | |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
37
diff
changeset
|
67 | syslog(LOG_NOTICE, "db_profile_styles: ".$sql." result: ".mysqli_error($connect)); |
768
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
68 | $response['error'] = true; |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
69 | $response['msg'] = "SQL fout: ".mysqli_error($connect); |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
70 | } |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
71 | exit(json_encode($response)); |
28 | 72 | |
73 | } else { | |
74 | // SELECT COMMAND | |
217
318aab371497
Profile style is using indexes. Profile styles and fermentation switched to POST. Standard edit screens.
Michiel Broek <mbroek@mbse.eu>
parents:
77
diff
changeset
|
75 | $query = "SELECT * FROM profile_styles ORDER BY style_guide,style_letter,name"; |
28 | 76 | $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); |
77 | while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { | |
78 | $styles[] = array( | |
79 | 'record' => $row['record'], | |
80 | 'name' => $row['name'], | |
81 | 'category' => $row['category'], | |
82 | 'category_number' => $row['category_number'], | |
83 | 'style_letter' => $row['style_letter'], | |
84 | 'style_guide' => $row['style_guide'], | |
85 | 'type' => $row['type'], | |
86 | 'og_min' => $row['og_min'], | |
87 | 'og_max' => $row['og_max'], | |
88 | 'fg_min' => $row['fg_min'], | |
89 | 'fg_max' => $row['fg_max'], | |
90 | 'ibu_min' => $row['ibu_min'], | |
91 | 'ibu_max' => $row['ibu_max'], | |
92 | 'color_min' => $row['color_min'], | |
93 | 'color_max' => $row['color_max'], | |
94 | 'carb_min' => $row['carb_min'], | |
95 | 'carb_max' => $row['carb_max'], | |
96 | 'abv_min' => $row['abv_min'], | |
97 | 'abv_max' => $row['abv_max'], | |
98 | 'notes' => $row['notes'], | |
99 | 'profile' => $row['profile'], | |
100 | 'ingredients' => $row['ingredients'], | |
101 | 'examples' => $row['examples'] | |
102 | ); | |
103 | } | |
296
69fadd1aded2
Updated design document. Add content header application/json to all scripts that produce json output. Chart prints show the beer code and name in the header. Charts don't display the menu anymore.
Michiel Broek <mbroek@mbse.eu>
parents:
217
diff
changeset
|
104 | header("Content-type: application/json"); |
768
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
105 | exit(json_encode($styles)); |
28 | 106 | } |
768
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
107 | |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
108 | syslog(LOG_NOTICE, "db_profile_styles: missing arguments"); |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
109 | $response['error'] = true; |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
110 | $response['msg'] = "missing arguments"; |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
111 | echo json_encode($response); |
ae1195153fa2
Better error reporting in profiles fermentation steps, mash profiles, beer styles, water profiles and general setup.
Michiel Broek <mbroek@mbse.eu>
parents:
716
diff
changeset
|
112 | |
28 | 113 | ?> |