Fri, 25 Jan 2019 22:03:16 +0100
Friendly stock inventory display.
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 | |
50
6d94167c2697
Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
13 | $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); |
6d94167c2697
Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
14 | $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); |
120 | 15 | $rescapers = array("'"); |
16 | $rreplacements = array("\\'"); | |
17 | $disallowed = array('visibleindex','uniqueid','boundindex','uid'); | |
50
6d94167c2697
Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
18 | |
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
|
19 | // get data and store in a json array |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
38
diff
changeset
|
20 | $query = "SELECT * FROM profile_mash ORDER BY name"; |
120 | 21 | if (isset($_GET['insert']) || isset($_GET['update'])) { |
22 | if (isset($_GET['insert'])) { | |
23 | $sql = "INSERT INTO"; | |
24 | } | |
25 | if (isset($_GET['update'])) { | |
26 | $sql = "UPDATE"; | |
27 | } | |
28 | $sql .= " `profile_mash` SET name='" . mysqli_real_escape_string($connect, $_GET['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
|
29 | $sql .= "', notes='" . mysqli_real_escape_string($connect, $_GET['notes']); |
120 | 30 | $array = $_GET['steps']; |
31 | foreach($array as $key => $item){ | |
32 | foreach ($disallowed as $disallowed_key) { | |
33 | unset($array[$key]["$disallowed_key"]); | |
34 | } | |
35 | } | |
36 | $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array)); | |
37 | if (isset($_GET['insert'])) { | |
38 | $sql .= "';"; | |
39 | } | |
40 | if (isset($_GET['update'])) { | |
41 | $sql .= "' WHERE record='" . $_GET['record'] . "';"; | |
42 | } | |
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
|
43 | $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
|
44 | if (! $result) { |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
38
diff
changeset
|
45 | 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
|
46 | } else { |
120 | 47 | if (isset($_GET['update'])) { |
48 | syslog(LOG_NOTICE, "db_profile_mash: updated record ".$_GET['record']); | |
49 | } else { | |
50 | $lastid = mysqli_insert_id($connect); | |
51 | syslog(LOG_NOTICE, "db_profile_mash: inserted record ".$lastid); | |
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 | } |
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 | 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
|
55 | |
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
|
56 | } else if (isset($_GET['delete'])) { |
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
|
57 | // DELETE COMMAND |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
38
diff
changeset
|
58 | $sql = "DELETE FROM `profile_mash` WHERE record='".$_GET['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
|
59 | $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
|
60 | if (! $result) { |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
38
diff
changeset
|
61 | 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
|
62 | } else { |
45
95251bedfab4
Moved three inventory tables and screens to profiles
Michiel Broek <mbroek@mbse.eu>
parents:
38
diff
changeset
|
63 | syslog(LOG_NOTICE, "db_profile_mash: deleted record ".$_GET['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
|
64 | } |
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 | 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
|
66 | |
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 | } 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
|
68 | // SELECT COMMAND |
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, $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
|
70 | $mashprofiles = '['; |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
71 | $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
|
72 | 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
|
73 | // Manual encode to JSON. |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
74 | if ($comma) { |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
75 | $mashprofiles .= ','; |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
76 | } |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
77 | $comma = TRUE; |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
78 | $mashprofiles .= '{"record":' . $row['record']; |
50
6d94167c2697
Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
79 | $mashprofiles .= ',"name":"' . str_replace($escapers, $replacements, $row['name']); |
6d94167c2697
Next steps to implement a recipe editor
Michiel Broek <mbroek@mbse.eu>
parents:
45
diff
changeset
|
80 | $mashprofiles .= '","notes":"' . str_replace($escapers, $replacements, $row['notes']); |
38
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
81 | $mashprofiles .= '","steps":' . $row['steps']; |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
82 | $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
|
83 | } |
38
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
84 | $mashprofiles .= ']'; |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
85 | header("Content-type: application/json"); |
b7d44c98d609
Initial setup for mash steps editing.
Michiel Broek <mbroek@mbse.eu>
parents:
25
diff
changeset
|
86 | 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
|
87 | } |
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
|
88 | ?> |