www/includes/db_product.php

changeset 151
2c9cfe2f0860
parent 149
ff45488d480e
child 159
6428dae0605d
equal deleted inserted replaced
150:159d7a89fcef 151:2c9cfe2f0860
10 } 10 }
11 mysqli_set_charset($connect, "utf8" ); 11 mysqli_set_charset($connect, "utf8" );
12 12
13 $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); 13 $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
14 $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); 14 $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
15 15 $rescapers = array("'");
16 $rreplacements = array("\\'");
17 $disallowed = array('visibleindex','uniqueid','boundindex','uid','h_weight','m_weight');
16 18
17 if (isset($_POST['insert']) || isset($_POST['update'])) { 19 if (isset($_POST['insert']) || isset($_POST['update'])) {
18 if (isset($_POST['insert'])) { 20 if (isset($_POST['insert'])) {
19 $sql = "INSERT INTO `prod_main` SET "; 21 $sql = "INSERT INTO `products` SET ";
20 } 22 }
21 if (isset($_POST['update'])) { 23 if (isset($_POST['update'])) {
22 $sql = "UPDATE `prod_main` SET "; 24 $sql = "UPDATE `products` SET ";
23 } 25 }
26
27 $stage = $_POST['stage'];
28 if ($stage == 'Plan')
29 $stageno = 0;
30 else if ($stage == 'Wait')
31 $stageno = 1;
32 else if ($stage == 'Brew')
33 $stageno = 2;
34 else if ($stage == 'Primary')
35 $stageno = 3;
36 else if ($stage == 'Secondary')
37 $stageno = 4;
38 else if ($stage == 'Tertiary')
39 $stageno = 5;
40 else if ($stage == 'Package')
41 $stageno = 6;
42 else if ($stage == 'Carbonation')
43 $stageno = 7;
44 else if ($stage == 'Mature')
45 $stageno = 8;
46 else if ($stage == 'Taste')
47 $stageno = 9;
48 else if ($stage == 'Ready')
49 $stageno = 10;
50 else if ($stage == 'Closed')
51 $stageno = 11;
52
24 // Basic settings 53 // Basic settings
25 $sql .= "puuid='" . $_POST['puuid']; 54 $sql .= "uuid='" . $_POST['uuid'];
26 $sql .= "', pname='" . mysqli_real_escape_string($connect, $_POST['pname']); 55 $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']);
56 $sql .= "', code='" . mysqli_real_escape_string($connect, $_POST['code']);
27 $sql .= "', birth='" . $_POST['birth']; 57 $sql .= "', birth='" . $_POST['birth'];
28 $sql .= "', stage='" . $_POST['stage']; 58 $sql .= "', stage='" . $_POST['stage'];
29 $sql .= "', pnotes='" . mysqli_real_escape_string($connect, $_POST['pnotes']); 59 $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']);
30 ($_POST['log_brew'] == 'true') ? $sql .= "', log_brew='1" : $sql .= "', log_brew='0"; 60 ($_POST['log_brew'] == 'true') ? $sql .= "', log_brew='1" : $sql .= "', log_brew='0";
31 ($_POST['log_fermentation'] == 'true') ? $sql .= "', log_fermentation='1" : $sql .= "', log_fermentation='0"; 61 ($_POST['log_fermentation'] == 'true') ? $sql .= "', log_fermentation='1" : $sql .= "', log_fermentation='0";
32 ($_POST['inventory_reduced'] == 'true') ? $sql .= "', inventory_reduced='1" : $sql .= "', inventory_reduced='0"; 62 ($_POST['inventory_reduced'] == 'true') ? $sql .= "', inventory_reduced='1" : $sql .= "', inventory_reduced='0";
33 ($_POST['plocked'] == 'true') ? $sql .= "', plocked='1" : $sql .= "', plocked='0"; 63 ($_POST['locked'] == 'true') ? $sql .= "', locked='1" : $sql .= "', locked='0";
34 // Equipment 64 // Equipment
35 $sql .= "', eq_name='" . mysqli_real_escape_string($connect, $_POST['eq_name']); 65 $sql .= "', eq_name='" . mysqli_real_escape_string($connect, $_POST['eq_name']);
36 $sql .= "', eq_boil_size='" . $_POST['eq_boil_size']; 66 $sql .= "', eq_boil_size='" . $_POST['eq_boil_size'];
37 $sql .= "', eq_batch_size='" . $_POST['eq_batch_size']; 67 $sql .= "', eq_batch_size='" . $_POST['eq_batch_size'];
38 $sql .= "', eq_tun_volume='" . $_POST['eq_tun_volume']; 68 $sql .= "', eq_tun_volume='" . $_POST['eq_tun_volume'];
55 $sql .= "', eq_kettle_height='" . $_POST['eq_kettle_height']; 85 $sql .= "', eq_kettle_height='" . $_POST['eq_kettle_height'];
56 $sql .= "', eq_mash_volume='" . $_POST['eq_mash_volume']; 86 $sql .= "', eq_mash_volume='" . $_POST['eq_mash_volume'];
57 $sql .= "', eq_mash_max='" . $_POST['eq_mash_max']; 87 $sql .= "', eq_mash_max='" . $_POST['eq_mash_max'];
58 $sql .= "', eq_efficiency='" . $_POST['eq_efficiency']; 88 $sql .= "', eq_efficiency='" . $_POST['eq_efficiency'];
59 89
90 if ($stageno >= 2) {
60 // brew_date_start 91 // brew_date_start
61 // brew_mash_ph 92 // brew_mash_ph
62 // brew_mash_sg 93 // brew_mash_sg
63 // brew_sparge_temperature 94 // brew_sparge_temperature
64 // brew_sparge_volume 95 // brew_sparge_volume
84 // brew_aeration_type 115 // brew_aeration_type
85 // brew_fermenter_sg 116 // brew_fermenter_sg
86 // brew_fermenter_ibu 117 // brew_fermenter_ibu
87 // brew_date_end 118 // brew_date_end
88 // brew_log_available 119 // brew_log_available
120 }
121
122 if ($stageno >= 3) {
89 // primary_start_temp 123 // primary_start_temp
90 // primary_max_temp 124 // primary_max_temp
91 // primary_end_temp 125 // primary_end_temp
92 // primary_end_sg 126 // primary_end_sg
93 // primary_end_date 127 // primary_end_date
128 }
129
130 if ($stageno >= 4) {
94 // secondary_temp 131 // secondary_temp
95 // secondary_end_date 132 // secondary_end_date
96 // tertiary_temp 133 }
134
135 if ($stageno >= 5) {
136 // tertiary_temp
137 }
138
139 if ($stageno >= 6) {
97 // package_date 140 // package_date
98 // bottle_amount 141 // bottle_amount
99 // bottle_carbonation 142 // bottle_carbonation
100 // bottle_priming_sugar 143 // bottle_priming_sugar
101 // bottle_priming_amount 144 // bottle_priming_amount
105 // keg_priming_sugar 148 // keg_priming_sugar
106 // keg_priming_amount 149 // keg_priming_amount
107 // keg_carbonation_temp 150 // keg_carbonation_temp
108 // keg_forced_carb 151 // keg_forced_carb
109 // keg_pressure 152 // keg_pressure
110 // keg_priming_factor 153 // keg_priming_factor
154 }
155
156 if ($stageno >= 9) {
111 // taste_notes 157 // taste_notes
112 // taste_rate 158 // taste_rate
113 // taste_date 159 // taste_date
114 // taste_color 160 // taste_color
115 // taste_transparency 161 // taste_transparency
116 // taste_head 162 // taste_head
117 // taste_aroma 163 // taste_aroma
118 // taste_taste 164 // taste_taste
119 // taste_mouthfeel 165 // taste_mouthfeel
120 // taste_aftertaste 166 // taste_aftertaste
167 }
168
169 /*
170 * Recipe part
171 */
172 // $sql .= "', st_name='" . mysqli_real_escape_string($connect, $_POST['st_name']);
173 // $sql .= "', st_letter='" . mysqli_real_escape_string($connect, $_POST['st_letter']);
174 // $sql .= "', st_guide='" . mysqli_real_escape_string($connect, $_POST['st_guide']);
175 // $sql .= "', st_type='" . mysqli_real_escape_string($connect, $_POST['st_type']);
176 // $sql .= "', st_category='" . mysqli_real_escape_string($connect, $_POST['st_category']);
177 // $sql .= "', st_category_number='" . $_POST['st_category_number'];
178 $sql .= "', st_og_min='" . $_POST['st_og_min'];
179 $sql .= "', st_og_max='" . $_POST['st_og_max'];
180 $sql .= "', st_fg_min='" . $_POST['st_fg_min'];
181 $sql .= "', st_fg_max='" . $_POST['st_fg_max'];
182 $sql .= "', st_ibu_min='" . $_POST['st_ibu_min'];
183 $sql .= "', st_ibu_max='" . $_POST['st_ibu_max'];
184 $sql .= "', st_color_min='" . $_POST['st_color_min'];
185 $sql .= "', st_color_max='" . $_POST['st_color_max'];
186 $sql .= "', st_carb_min='" . $_POST['st_carb_min'];
187 $sql .= "', st_carb_max='" . $_POST['st_carb_max'];
188 $sql .= "', st_abv_min='" . $_POST['st_abv_min'];
189 $sql .= "', st_abv_max='" . $_POST['st_abv_max'];
190 $sql .= "', type='" . $_POST['type'];
191 $sql .= "', batch_size='" . $_POST['batch_size'];
192 $sql .= "', boil_size='" . $_POST['boil_size'];
193 $sql .= "', boil_time='" . $_POST['boil_time'];
194 $sql .= "', efficiency='" . $_POST['efficiency'];
195 $sql .= "', est_og='" . $_POST['est_og'];
196 $sql .= "', est_fg='" . $_POST['est_fg'];
197 $sql .= "', est_abv='" . $_POST['est_abv'];
198 $sql .= "', est_carb='" . $_POST['est_carb'];
199 $sql .= "', est_color='" . $_POST['est_color'];
200 $sql .= "', color_method='" . $_POST['color_method'];
201 $sql .= "', est_ibu='" . $_POST['est_ibu'];
202 $sql .= "', ibu_method='" . $_POST['ibu_method'];
203 $sql .= "', sparge_temp='" . $_POST['sparge_temp'];
204 $sql .= "', sparge_ph='" . $_POST['sparge_ph'];
205 $sql .= "', sparge_volume='" . $_POST['sparge_volume'];
206 // $sql .= "', sparge_acid_type='" . $_POST['sparge_acid_type'];
207 // $sql .= "', sparge_acid_perc='" . $_POST['sparge_acid_perc'];
208 // $sql .= "', sparge_acid_amount='" . $_POST['sparge_acid_amount'];
209 $sql .= "', mash_ph='" . $_POST['mash_ph'];
210 $sql .= "', mash_name='" . $_POST['mash_name'];
211 $sql .= "', calc_acid='" . $_POST['calc_acid'];
212 if (isset($_POST['w1_name'])) {
213 $sql .= "', w1_name='" . mysqli_real_escape_string($connect, $_POST['w1_name']);
214 $sql .= "', w1_amount='" . $_POST['w1_amount'];
215 $sql .= "', w1_calcium='" . $_POST['w1_calcium'];
216 $sql .= "', w1_sulfate='" . $_POST['w1_sulfate'];
217 $sql .= "', w1_chloride='" . $_POST['w1_chloride'];
218 $sql .= "', w1_sodium='" . $_POST['w1_sodium'];
219 $sql .= "', w1_magnesium='" . $_POST['w1_magnesium'];
220 $sql .= "', w1_total_alkalinity='" . $_POST['w1_total_alkalinity'];
221 $sql .= "', w1_ph='" . $_POST['w1_ph'];
222 $sql .= "', w1_cost='" . $_POST['w1_cost'];
223 }
224 if (isset($_POST['w2_name'])) {
225 $sql .= "', w2_name='" . mysqli_real_escape_string($connect, $_POST['w2_name']);
226 $sql .= "', w2_amount='" . $_POST['w2_amount'];
227 $sql .= "', w2_calcium='" . $_POST['w2_calcium'];
228 $sql .= "', w2_sulfate='" . $_POST['w2_sulfate'];
229 $sql .= "', w2_chloride='" . $_POST['w2_chloride'];
230 $sql .= "', w2_sodium='" . $_POST['w2_sodium'];
231 $sql .= "', w2_magnesium='" . $_POST['w2_magnesium'];
232 $sql .= "', w2_total_alkalinity='" . $_POST['w2_total_alkalinity'];
233 $sql .= "', w2_ph='" . $_POST['w2_ph'];
234 $sql .= "', w2_cost='" . $_POST['w2_cost'];
235 }
121 syslog(LOG_NOTICE, $sql); 236 syslog(LOG_NOTICE, $sql);
237
238 if (isset($_POST['fermentables'])) {
239 $array = $_POST['fermentables'];
240 foreach($array as $key => $item){
241 foreach ($disallowed as $disallowed_key) {
242 unset($array[$key]["$disallowed_key"]);
243 }
244 }
245 syslog(LOG_NOTICE, "json_fermentables=: ".str_replace($rescapers,$rreplacements,json_encode($array)));
246 $sql .= "', json_fermentables='" . str_replace($rescapers,$rreplacements,json_encode($array));
247 }
248
249 if (isset($_POST['hops'])) {
250 $array = $_POST['hops'];
251 foreach($array as $key => $item){
252 foreach ($disallowed as $disallowed_key) {
253 unset($array[$key]["$disallowed_key"]);
254 }
255 }
256 syslog(LOG_NOTICE, "json_hops: ".str_replace($rescapers,$rreplacements,json_encode($array)));
257 $sql .= "', json_hops='" . str_replace($rescapers,$rreplacements,json_encode($array));
258 }
259
260 if (isset($_POST['miscs'])) {
261 $array = $_POST['miscs'];
262 foreach($array as $key => $item){
263 foreach ($disallowed as $disallowed_key) {
264 unset($array[$key]["$disallowed_key"]);
265 }
266 }
267 syslog(LOG_NOTICE, "json_miscs: ".str_replace($rescapers,$rreplacements,json_encode($array)));
268 $sql .= "', json_miscs='" . str_replace($rescapers,$rreplacements,json_encode($array));
269 }
270
271 if (isset($_POST['yeasts'])) {
272 $array = $_POST['yeasts'];
273 foreach($array as $key => $item){
274 foreach ($disallowed as $disallowed_key) {
275 unset($array[$key]["$disallowed_key"]);
276 }
277 }
278 syslog(LOG_NOTICE, "json_yeasts: ". str_replace($rescapers,$rreplacements,json_encode($array)));
279 $sql .= "', json_yeasts='" . str_replace($rescapers,$rreplacements,json_encode($array));
280 }
281
282 if (isset($_POST['mashs'])) {
283 $array = $_POST['mashs'];
284 foreach($array as $key => $item){
285 foreach ($disallowed as $disallowed_key) {
286 unset($array[$key]["$disallowed_key"]);
287 }
288 }
289 syslog(LOG_NOTICE, "json_mashs: ".str_replace($rescapers,$rreplacements,json_encode($array)));
290 $sql .= "', json_mashs='" . str_replace($rescapers,$rreplacements,json_encode($array));
291 }
292
122 if (isset($_POST['insert'])) { 293 if (isset($_POST['insert'])) {
123 $sql .= "';"; 294 $sql .= "';";
124 } 295 }
125 if (isset($_POST['update'])) { 296 if (isset($_POST['update'])) {
126 $sql .= "' WHERE record='" . $_POST['record'] . "';"; 297 $sql .= "' WHERE record='" . $_POST['record'] . "';";
142 // } 313 // }
143 // echo $result; 314 // echo $result;
144 315
145 } else if (isset($_POST['delete'])) { 316 } else if (isset($_POST['delete'])) {
146 /* 317 /*
147 * DELETE command, first delete the recipe and then the product. 318 * DELETE command.
148 */ 319 */
149 $sql = "DELETE FROM `prod_recipes` WHERE uuid='".$_POST['uuid']."';"; 320 $sql = "DELETE FROM `products` WHERE uuid='".$_POST['uuid']."';";
150 $result = mysqli_query($connect, $sql);
151 if (! $result) {
152 syslog(LOG_NOTICE, "db_product: ".$sql." result: ".mysqli_error($connect));
153 } else {
154 syslog(LOG_NOTICE, "db_product: deleted recipe uuid ".$_POST['uuid']);
155 }
156
157 $sql = "DELETE FROM `prod_main` WHERE puuid='".$_POST['uuid']."';";
158 $result = mysqli_query($connect, $sql); 321 $result = mysqli_query($connect, $sql);
159 if (! $result) { 322 if (! $result) {
160 syslog(LOG_NOTICE, "db_product: ".$sql." result: ".mysqli_error($connect)); 323 syslog(LOG_NOTICE, "db_product: ".$sql." result: ".mysqli_error($connect));
161 } else { 324 } else {
162 syslog(LOG_NOTICE, "db_product: deleted product uuid ".$_POST['uuid']); 325 syslog(LOG_NOTICE, "db_product: deleted product uuid ".$_POST['uuid']);
166 } else { 329 } else {
167 /* 330 /*
168 * SELECT, produce a list of products that are not yet Closed. 331 * SELECT, produce a list of products that are not yet Closed.
169 */ 332 */
170 if (isset($_GET['select']) && ($_GET['select'] == "inprod")) { 333 if (isset($_GET['select']) && ($_GET['select'] == "inprod")) {
171 $query = "SELECT record,pname,code,birth,stage FROM prod_main WHERE stage != 'Closed' ORDER BY birth,code;"; 334 $query = "SELECT record,name,code,birth,stage FROM products WHERE stage != 'Closed' ORDER BY birth,code;";
172 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); 335 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
173 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 336 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
174 $brews[] = array( 337 $brews[] = array(
175 'record' => $row['record'], 338 'record' => $row['record'],
176 'pname' => $row['pname'], 339 'name' => $row['name'],
177 'code' => $row['code'], 340 'code' => $row['code'],
178 'birth' => $row['birth'], 341 'birth' => $row['birth'],
179 'stage' => $row['stage'] 342 'stage' => $row['stage']
180 ); 343 );
181 } 344 }
185 348
186 /* 349 /*
187 * Default, select all or a given record. 350 * Default, select all or a given record.
188 */ 351 */
189 if (isset($_GET['record'])) { 352 if (isset($_GET['record'])) {
190 $query = "SELECT * FROM prod_main LEFT JOIN prod_recipes ON puuid = uuid WHERE prod_main.record='"; 353 $query = "SELECT * FROM products WHERE record='" . $_GET['record'] . "';";
191 $query .= $_GET['record'] . "';";
192 } else { 354 } else {
193 $query = "SELECT * FROM prod_main LEFT JOIN prod_recipes ON puuid = uuid ORDER BY birth,code;"; 355 $query = "SELECT * FROM products ORDER BY birth,code;";
194 } 356 }
195 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); 357 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
196 $brews = '['; 358 $brews = '[';
197 $comma = FALSE; 359 $comma = FALSE;
198 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 360 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
199 // Manual encode to JSON. 361 // Manual encode to JSON.
200 if ($comma) 362 if ($comma)
201 $brews .= ','; 363 $brews .= ',';
202 $comma = TRUE; 364 $comma = TRUE;
203 $brew = '{"record":' . $row['record']; 365 $brew = '{"record":' . $row['record'];
204 $brew .= ',"puuid":"' . str_replace($escapers, $replacements, $row['puuid']); 366 $brew .= ',"uuid":"' . str_replace($escapers, $replacements, $row['uuid']);
205 $brew .= '","pname":"' . str_replace($escapers, $replacements, $row['pname']); 367 $brew .= '","name":"' . str_replace($escapers, $replacements, $row['name']);
206 $brew .= '","code":"' . str_replace($escapers, $replacements, $row['code']); 368 $brew .= '","code":"' . str_replace($escapers, $replacements, $row['code']);
207 $brew .= '","birth":"' . str_replace($escapers, $replacements, $row['birth']); 369 $brew .= '","birth":"' . str_replace($escapers, $replacements, $row['birth']);
208 $brew .= '","stage":"' . str_replace($escapers, $replacements, $row['stage']); 370 $brew .= '","stage":"' . str_replace($escapers, $replacements, $row['stage']);
209 $brew .= '","pnotes":"' . str_replace($escapers, $replacements, $row['pnotes']); 371 $brew .= '","notes":"' . str_replace($escapers, $replacements, $row['notes']);
210 $brew .= '","log_brew":' . $row['log_brew']; 372 $brew .= '","log_brew":' . $row['log_brew'];
211 $brew .= ',"log_fermentation":' . $row['log_fermentation']; 373 $brew .= ',"log_fermentation":' . $row['log_fermentation'];
212 $brew .= ',"inventory_reduced":' . $row['inventory_reduced']; 374 $brew .= ',"inventory_reduced":' . $row['inventory_reduced'];
213 $brew .= ',"plocked":' . $row['plocked']; 375 $brew .= ',"locked":' . $row['locked'];
214 $brew .= ',"eq_name":"' . str_replace($escapers, $replacements, $row['eq_name']); 376 $brew .= ',"eq_name":"' . str_replace($escapers, $replacements, $row['eq_name']);
215 $brew .= '","eq_notes":"' . str_replace($escapers, $replacements, $row['eq_notes']); 377 $brew .= '","eq_notes":"' . str_replace($escapers, $replacements, $row['eq_notes']);
216 $brew .= '","eq_boil_size":' . floatval($row['eq_boil_size']); 378 $brew .= '","eq_boil_size":' . floatval($row['eq_boil_size']);
217 $brew .= ',"eq_batch_size":' . floatval($row['eq_batch_size']); 379 $brew .= ',"eq_batch_size":' . floatval($row['eq_batch_size']);
218 $brew .= ',"eq_tun_volume":' . floatval($row['eq_tun_volume']); 380 $brew .= ',"eq_tun_volume":' . floatval($row['eq_tun_volume']);
314 $brew .= ',"st_color_max":' . floatval($row['st_color_max']); 476 $brew .= ',"st_color_max":' . floatval($row['st_color_max']);
315 $brew .= ',"st_carb_min":' . floatval($row['st_carb_min']); 477 $brew .= ',"st_carb_min":' . floatval($row['st_carb_min']);
316 $brew .= ',"st_carb_max":' . floatval($row['st_carb_max']); 478 $brew .= ',"st_carb_max":' . floatval($row['st_carb_max']);
317 $brew .= ',"st_abv_min":' . floatval($row['st_abv_min']); 479 $brew .= ',"st_abv_min":' . floatval($row['st_abv_min']);
318 $brew .= ',"st_abv_max":' . floatval($row['st_abv_max']); 480 $brew .= ',"st_abv_max":' . floatval($row['st_abv_max']);
319 $brew .= ',"notes":"' . str_replace($escapers, $replacements, $row['notes']); 481 $brew .= ',"type":"' . $row['type'];
320 $brew .= '","type":"' . $row['type'];
321 $brew .= '","batch_size":' . floatval($row['batch_size']); 482 $brew .= '","batch_size":' . floatval($row['batch_size']);
322 $brew .= ',"boil_size":' . floatval($row['boil_size']); 483 $brew .= ',"boil_size":' . floatval($row['boil_size']);
323 $brew .= ',"boil_time":' . floatval($row['boil_time']); 484 $brew .= ',"boil_time":' . floatval($row['boil_time']);
324 $brew .= ',"efficiency":' . floatval($row['efficiency']); 485 $brew .= ',"efficiency":' . floatval($row['efficiency']);
325 $brew .= ',"est_og":' . floatval($row['est_og']); 486 $brew .= ',"est_og":' . floatval($row['est_og']);
363 $brew .= ',"hops":' . $row['json_hops']; 524 $brew .= ',"hops":' . $row['json_hops'];
364 $brew .= ',"miscs":' . $row['json_miscs']; 525 $brew .= ',"miscs":' . $row['json_miscs'];
365 $brew .= ',"yeasts":' . $row['json_yeasts']; 526 $brew .= ',"yeasts":' . $row['json_yeasts'];
366 $brew .= ',"mashs":' . $row['json_mashs']; 527 $brew .= ',"mashs":' . $row['json_mashs'];
367 $brew .= '}'; 528 $brew .= '}';
529 // syslog(LOG_NOTICE, $brew);
368 $brews .= $brew; 530 $brews .= $brew;
369 } 531 }
370 $brews .= ']'; 532 $brews .= ']';
371 header("Content-type: application/json"); 533 header("Content-type: application/json");
372 echo $brews; 534 echo $brews;

mercurial