www/includes/db_profile_styles.php

Tue, 31 Aug 2021 20:48:37 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Tue, 31 Aug 2021 20:48:37 +0200
changeset 774
92e1e8f175a2
parent 768
ae1195153fa2
child 785
aa79acfdf8a9
permissions
-rw-r--r--

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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 require($_SERVER['DOCUMENT_ROOT']."/version.php");
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #Connect to the database
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (! $connect) {
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
ac959f98e107 Added inventory styles
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: 48
diff changeset
11 mysqli_set_charset($connect, "utf8" );
28
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 $result = mysqli_query($connect, $sql);
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 $result = mysqli_query($connect, $sql);
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 } else {
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 $styles[] = array(
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 'record' => $row['record'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 'name' => $row['name'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 'category' => $row['category'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 'category_number' => $row['category_number'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83 'style_letter' => $row['style_letter'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 'style_guide' => $row['style_guide'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 'type' => $row['type'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 'og_min' => $row['og_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 'og_max' => $row['og_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 'fg_min' => $row['fg_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 'fg_max' => $row['fg_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 'ibu_min' => $row['ibu_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 'ibu_max' => $row['ibu_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 'color_min' => $row['color_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 'color_max' => $row['color_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 'carb_min' => $row['carb_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 'carb_max' => $row['carb_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 'abv_min' => $row['abv_min'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 'abv_max' => $row['abv_max'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 'notes' => $row['notes'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 'profile' => $row['profile'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 'ingredients' => $row['ingredients'],
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 'examples' => $row['examples']
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 );
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
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
ac959f98e107 Added inventory styles
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
113 ?>

mercurial