118 } |
122 } |
119 |
123 |
120 /* |
124 /* |
121 * Default, select all |
125 * Default, select all |
122 */ |
126 */ |
123 $query = "SELECT * FROM prod_main ORDER BY birth,code;"; |
127 if (isset($_GET['record'])) { |
|
128 syslog(LOG_NOTICE, "Request record GET " . $_GET['record']); |
|
129 } else if (isset($_POST['record'])) { |
|
130 syslog(LOG_NOTICE, "Request record POST " . $_POST['record']); |
|
131 } else { |
|
132 syslog(LOG_NOTICE, "No record requested"); |
|
133 } |
|
134 $query = "SELECT * FROM prod_main LEFT JOIN prod_recipes ON prod_main.uuid = prod_recipes.uuid ORDER BY birth,code;"; |
124 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); |
135 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); |
|
136 $brews = '['; |
|
137 $comma = FALSE; |
125 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
138 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
126 $brews[] = array( |
139 // Manual encode to JSON. |
127 'record' => $row['record'], |
140 if ($comma) |
128 'uuid' => $row['uuid'], |
141 $brews .= ','; |
129 'name' => $row['name'], |
142 $comma = TRUE; |
130 'code' => $row['code'], |
143 $brew = '{"record":' . $row['record']; |
131 'birth' => $row['birth'], |
144 $brew .= ',"uuid":"' . str_replace($escapers, $replacements, $row['uuid']); |
132 'stage' => $row['stage'], |
145 $brew .= '","name":"' . str_replace($escapers, $replacements, $row['name']); |
133 'notes' => $row['notes'], |
146 $brew .= '","code":"' . str_replace($escapers, $replacements, $row['code']); |
134 'log_brew' => $row['log_brew'], |
147 $brew .= '","birth":"' . str_replace($escapers, $replacements, $row['birth']); |
135 'log_fermentation' => $row['log_fermentation'], |
148 $brew .= '","stage":"' . str_replace($escapers, $replacements, $row['stage']); |
136 'inventory_reduced' => $row['inventory_reduced'], |
149 $brew .= '","notes":"' . str_replace($escapers, $replacements, $row['notes']); |
137 'locked' => $row['locked'], |
150 $brew .= '","log_brew":' . $row['log_brew']; |
138 'eq_name' => $row['eq_name'], |
151 $brew .= ',"log_fermentation":' . $row['log_fermentation']; |
139 'eq_notes' => $row['eq_notes'], |
152 $brew .= ',"inventory_reduced":' . $row['inventory_reduced']; |
140 'eq_boil_size' => $row['eq_boil_size'], |
153 $brew .= ',"locked":' . $row['locked']; |
141 'eq_batch_size' => $row['eq_batch_size'], |
154 $brew .= ',"eq_name":"' . str_replace($escapers, $replacements, $row['eq_name']); |
142 'eq_tun_volume' => $row['eq_tun_volume'], |
155 $brew .= '","eq_notes":"' . str_replace($escapers, $replacements, $row['eq_notes']); |
143 'eq_tun_weight' => $row['eq_tun_weight'], |
156 $brew .= '","eq_boil_size":' . floatval($row['eq_boil_size']); |
144 'eq_tun_specific_heat' => $row['eq_tun_specific_heat'], |
157 $brew .= ',"eq_batch_size":' . floatval($row['eq_batch_size']); |
145 'eq_tun_material' => $row['eq_tun_material'], |
158 $brew .= ',"eq_tun_volume":' . floatval($row['eq_tun_volume']); |
146 'eq_tun_height' => $row['eq_tun_height'], |
159 $brew .= ',"eq_tun_weight":' . floatval($row['eq_tun_weight']); |
147 'eq_top_up_water' => $row['eq_top_up_water'], |
160 $brew .= ',"eq_tun_specific_heat":' . floatval($row['eq_tun_specific_heat']); |
148 'eq_trub_chiller_loss' => $row['eq_trub_chiller_loss'], |
161 $brew .= ',"eq_tun_material":"' . $row['eq_tun_material']; |
149 'eq_evap_rate' => $row['eq_evap_rate'], |
162 $brew .= '","eq_tun_height":' . floatval($row['eq_tun_height']); |
150 'eq_boil_time' => $row['eq_boil_time'], |
163 $brew .= ',"eq_top_up_water":' . floatval($row['eq_top_up_water']); |
151 'eq_calc_boil_volume' => $row['eq_calc_boil_volume'], |
164 $brew .= ',"eq_trub_chiller_loss":' . floatval($row['eq_trub_chiller_loss']); |
152 'eq_top_up_kettle' => $row['eq_top_up_kettle'], |
165 $brew .= ',"eq_evap_rate":' . floatval($row['eq_evap_rate']); |
153 'eq_hop_utilization' => $row['eq_hop_utilization'], |
166 $brew .= ',"eq_boil_time":' . floatval($row['eq_boil_time']); |
154 'eq_lauter_volume' => $row['eq_lauter_volume'], |
167 $brew .= ',"eq_calc_boil_volume":' . $row['eq_calc_boil_volume']; |
155 'eq_lauter_height' => $row['eq_lauter_height'], |
168 $brew .= ',"eq_calc_boil_volume":' . floatval($row['eq_calc_boil_volume']); |
156 'eq_lauter_deadspace' => $row['eq_lauter_deadspace'], |
169 $brew .= ',"eq_top_up_kettle":' . floatval($row['eq_top_up_kettle']); |
157 'eq_kettle_volume' => $row['eq_kettle_volume'], |
170 $brew .= ',"eq_hop_utilization":' . floatval($row['eq_hop_utilization']); |
158 'eq_kettle_height' => $row['eq_kettle_height'], |
171 $brew .= ',"eq_lauter_volume":' . floatval($row['eq_lauter_volume']); |
159 'eq_mash_volume' => $row['eq_mash_volume'], |
172 $brew .= ',"eq_lauter_height":' . floatval($row['eq_lauter_height']); |
160 'eq_efficiency' => $row['eq_efficiency'], |
173 $brew .= ',"eq_lauter_deadspace":' . floatval($row['eq_lauter_deadspace']); |
161 'brew_date_start' => $row['brew_date_start'], |
174 $brew .= ',"eq_kettle_volume":' . floatval($row['eq_kettle_volume']); |
162 'brew_mash_ph' => $row['brew_mash_ph'], |
175 $brew .= ',"eq_kettle_height":' . floatval($row['eq_kettle_height']); |
163 'brew_mash_sg' => $row['brew_mash_sg'], |
176 $brew .= ',"eq_mash_volume":' . floatval($row['eq_mash_volume']); |
164 'brew_sparge_temperature' => $row['brew_sparge_temperature'], |
177 $brew .= ',"eq_efficiency":' . floatval($row['eq_efficiency']); |
165 'brew_sparge_volume' => $row['brew_sparge_volume'], |
178 $brew .= ',"eq_top_up_water":' . floatval($row['eq_top_up_water']); |
166 'brew_preboil_volume' => $row['brew_preboil_volume'], |
179 $brew .= ',"brew_date_start":"' . $row['brew_date_start']; |
167 'brew_preboil_sg' => $row['brew_preboil_sg'], |
180 $brew .= '","brew_mash_ph":' . floatval($row['brew_mash_ph']); |
168 'brew_preboil_ph' => $row['brew_preboil_ph'], |
181 $brew .= ',"brew_mash_sg":' . floatval($row['brew_mash_sg']); |
169 'brew_aboil_volume' => $row['brew_aboil_volume'], |
182 $brew .= ',"brew_sparge_temperature":' . floatval($row['brew_sparge_temperature']); |
170 'brew_aboil_sg' => $row['brew_aboil_sg'], |
183 $brew .= ',"brew_sparge_volume":' . floatval($row['brew_sparge_volume']); |
171 'brew_aboil_ph' => $row['brew_aboil_ph'], |
184 $brew .= ',"brew_preboil_volume":' . floatval($row['brew_preboil_volume']); |
172 'brew_aboil_efficiency' => $row['brew_aboil_efficiency'], |
185 $brew .= ',"brew_preboil_sg":' . floatval($row['brew_preboil_sg']); |
173 'brew_cooling_method' => $row['brew_cooling_method'], |
186 $brew .= ',"brew_preboil_ph":' . floatval($row['brew_preboil_ph']); |
174 'brew_cooling_time' => $row['brew_cooling_time'], |
187 $brew .= ',"brew_aboil_volume":' . floatval($row['brew_aboil_volume']); |
175 'brew_cooling_to' => $row['brew_cooling_to'], |
188 $brew .= ',"brew_aboil_sg":' . floatval($row['brew_aboil_sg']); |
176 'brew_whirlpool9' => $row['brew_whirlpool9'], |
189 $brew .= ',"brew_aboil_ph":' . floatval($row['brew_aboil_ph']); |
177 'brew_whirlpool7' => $row['brew_whirlpool7'], |
190 $brew .= ',"brew_aboil_efficiency":' . floatval($row['brew_aboil_efficiency']); |
178 'brew_whirlpool6' => $row['brew_whirlpool6'], |
191 $brew .= ',"brew_cooling_method":"' . $row['brew_cooling_method']; |
179 'brew_whirlpool2' => $row['brew_whirlpool2'], |
192 $brew .= '","brew_cooling_time":' . floatval($row['brew_cooling_time']); |
180 'brew_fermenter_volume' => $row['brew_fermenter_volume'], |
193 $brew .= ',"brew_cooling_to":' . floatval($row['brew_cooling_to']); |
181 'brew_fermenter_extrawater' => $row['brew_fermenter_extrawater'], |
194 $brew .= ',"brew_whirlpool9":' . floatval($row['brew_whirlpool9']); |
182 'brew_aeration_time' => $row['brew_aeration_time'], |
195 $brew .= ',"brew_whirlpool7":' . floatval($row['brew_whirlpool7']); |
183 'brew_aeration_speed' => $row['brew_aeration_speed'], |
196 $brew .= ',"brew_whirlpool6":' . floatval($row['brew_whirlpool6']); |
184 'brew_aeration_type' => $row['brew_aeration_type'], |
197 $brew .= ',"brew_whirlpool2":' . floatval($row['brew_whirlpool2']); |
185 'brew_fermenter_sg' => $row['brew_fermenter_sg'], |
198 $brew .= ',"brew_fermenter_volume":' . floatval($row['brew_fermenter_volume']); |
186 'brew_fermenter_ibu' => $row['brew_fermenter_ibu'], |
199 $brew .= ',"brew_fermenter_extrawater":' . floatval($row['brew_fermenter_extrawater']); |
187 'brew_date_end' => $row['brew_date_end'], |
200 $brew .= ',"brew_aeration_time":' . floatval($row['brew_aeration_time']); |
188 'brew_log_available' => $row['brew_log_available'], |
201 $brew .= ',"brew_aeration_speed":' . floatval($row['brew_aeration_speed']); |
189 'primary_start_temp' => $row['primary_start_temp'], |
202 $brew .= ',"brew_aeration_type":' . floatval($row['brew_aeration_type']); |
190 'primary_max_temp' => $row['primary_max_temp'], |
203 $brew .= ',"brew_fermenter_sg":' . floatval($row['brew_fermenter_sg']); |
191 'primary_end_temp' => $row['primary_end_temp'], |
204 $brew .= ',"brew_fermenter_ibu":' . floatval($row['brew_fermenter_ibu']); |
192 'primary_end_sg' => $row['primary_end_sg'], |
205 $brew .= ',"brew_date_end":"' . $row['brew_date_end']; |
193 'primary_end_date' => $row['primary_end_date'], |
206 $brew .= '","brew_log_available":' . $row['brew_log_available']; |
194 'secondary_temp' => $row['secondary_temp'], |
207 $brew .= ',"primary_start_temp":' . floatval($row['primary_start_temp']); |
195 'secondary_end_date' => $row['secondary_end_date'], |
208 $brew .= ',"primary_max_temp":' . floatval($row['primary_max_temp']); |
196 'tertiary_temp' => $row['tertiary_temp'], |
209 $brew .= ',"primary_end_temp":' . floatval($row['primary_end_temp']); |
197 'package_date' => $row['package_date'], |
210 $brew .= ',"primary_end_sg":' . floatval($row['primary_end_sg']); |
198 'bottle_amount' => $row['bottle_amount'], |
211 $brew .= ',"primary_end_date":"' . $row['primary_end_date']; |
199 'bottle_carbonation' => $row['bottle_carbonation'], |
212 $brew .= '","secondary_temp":' . floatval($row['secondary_temp']); |
200 'bottle_priming_sugar' => $row['bottle_priming_sugar'], |
213 $brew .= ',"secondary_end_date":"' . $row['secondary_end_date']; |
201 'bottle_priming_amount' => $row['bottle_priming_amount'], |
214 $brew .= '","tertiary_temp":' . floatval($row['tertiary_temp']); |
202 'bottle_carbonation_temp' => $row['bottle_carbonation_temp'], |
215 $brew .= ',"package_date":"' . $row['package_date']; |
203 'keg_amount' => $row['keg_amount'], |
216 $brew .= '","bottle_amount":' . floatval($row['bottle_amount']); |
204 'keg_carbonation' => $row['keg_carbonation'], |
217 $brew .= ',"bottle_carbonation":' . floatval($row['bottle_carbonation']); |
205 'keg_priming_sugar' => $row['keg_priming_sugar'], |
218 $brew .= ',"bottle_priming_sugar":"' . str_replace($escapers, $replacements, $row['bottle_priming_sugar']); |
206 'keg_priming_amount' => $row['keg_priming_amount'], |
219 $brew .= '","bottle_priming_amount":' . floatval($row['bottle_priming_amount']); |
207 'keg_carbonation_temp' => $row['keg_carbonation_temp'], |
220 $brew .= ',"bottle_carbonation_temp":' . floatval($row['bottle_carbonation_temp']); |
208 'keg_forced_carb' => $row['keg_forced_carb'], |
221 $brew .= ',"keg_amount":' . floatval($row['keg_amount']); |
209 'keg_pressure' => $row['keg_pressure'], |
222 $brew .= ',"keg_carbonation":' . floatval($row['keg_carbonation']); |
210 'keg_priming_factor' => $row['keg_priming_factor'], |
223 $brew .= ',"keg_priming_sugar":"' . str_replace($escapers, $replacements, $row['keg_priming_sugar']); |
211 'taste_notes' => $row['taste_notes'], |
224 $brew .= '","keg_priming_amount":' . floatval($row['keg_priming_amount']); |
212 'taste_rate' => $row['taste_rate'], |
225 $brew .= ',"keg_carbonation_temp":' . floatval($row['keg_carbonation_temp']); |
213 'taste_date' => $row['taste_date'], |
226 $brew .= ',"keg_forced_carb":' . floatval($row['keg_forced_carb']); |
214 'taste_color' => $row['taste_color'], |
227 $brew .= ',"keg_pressure":' . floatval($row['keg_pressure']); |
215 'taste_transparency' => $row['taste_transparency'], |
228 $brew .= ',"keg_priming_factor":' . floatval($row['keg_priming_factor']); |
216 'taste_head' => $row['taste_head'], |
229 $brew .= ',"taste_notes":"' . str_replace($escapers, $replacements, $row['taste_notes']); |
217 'taste_aroma' => $row['taste_aroma'], |
230 $brew .= '","taste_rate":' . floatval($row['taste_rate']); |
218 'taste_taste' => $row['taste_taste'], |
231 $brew .= ',"taste_date":"' . str_replace($escapers, $replacements, $row['taste_date']); |
219 'taste_mouthfeel' => $row['taste_mouthfeel'], |
232 $brew .= '","taste_color":"' . str_replace($escapers, $replacements, $row['taste_color']); |
220 'taste_aftertaste' => $row['taste_aftertaste'] |
233 $brew .= '","taste_transparency":"' . str_replace($escapers, $replacements, $row['taste_transparency']); |
221 ); |
234 $brew .= '","taste_head":"' . str_replace($escapers, $replacements, $row['taste_head']); |
222 } |
235 $brew .= '","taste_aroma":"' . str_replace($escapers, $replacements, $row['taste_aroma']); |
223 // syslog(LOG_NOTICE, json_encode($brews)); |
236 $brew .= '","taste_taste":"' . str_replace($escapers, $replacements, $row['taste_taste']); |
224 echo json_encode($brews); |
237 $brew .= '","taste_mouthfeel":"' . str_replace($escapers, $replacements, $row['taste_mouthfeel']); |
|
238 $brew .= '","taste_aftertaste":"' . str_replace($escapers, $replacements, $row['taste_aftertaste']); |
|
239 $brew .= '","st_guide":"' . str_replace($escapers, $replacements, $row['st_guide']); |
|
240 $brew .= '","st_letter":"' . str_replace($escapers, $replacements, $row['st_letter']); |
|
241 $brew .= '","st_name":"' . str_replace($escapers, $replacements, $row['st_name']); |
|
242 $brew .= '","st_type":"' . str_replace($escapers, $replacements, $row['st_type']); |
|
243 $brew .= '","st_category":"' . str_replace($escapers, $replacements, $row['st_category']); |
|
244 $brew .= '","st_category_number":' . floatval($row['st_category_number']); |
|
245 $brew .= ',"st_og_min":' . floatval($row['st_og_min']); |
|
246 $brew .= ',"st_og_max":' . floatval($row['st_og_max']); |
|
247 $brew .= ',"st_fg_min":' . floatval($row['st_fg_min']); |
|
248 $brew .= ',"st_fg_max":' . floatval($row['st_fg_max']); |
|
249 $brew .= ',"st_ibu_min":' . floatval($row['st_ibu_min']); |
|
250 $brew .= ',"st_ibu_max":' . floatval($row['st_ibu_max']); |
|
251 $brew .= ',"st_color_min":' . floatval($row['st_color_min']); |
|
252 $brew .= ',"st_color_max":' . floatval($row['st_color_max']); |
|
253 $brew .= ',"st_carb_min":' . floatval($row['st_carb_min']); |
|
254 $brew .= ',"st_carb_max":' . floatval($row['st_carb_max']); |
|
255 $brew .= ',"st_abv_min":' . floatval($row['st_abv_min']); |
|
256 $brew .= ',"st_abv_max":' . floatval($row['st_abv_max']); |
|
257 $brew .= ',"r_notes":"' . str_replace($escapers, $replacements, $row['notes']); |
|
258 $brew .= '","type":"' . $row['type']; |
|
259 $brew .= '","batch_size":' . floatval($row['batch_size']); |
|
260 $brew .= ',"boil_size":' . floatval($row['boil_size']); |
|
261 $brew .= ',"boil_time":' . floatval($row['boil_time']); |
|
262 $brew .= ',"efficiency":' . floatval($row['efficiency']); |
|
263 $brew .= ',"est_og":' . floatval($row['est_og']); |
|
264 $brew .= ',"est_fg":' . floatval($row['est_fg']); |
|
265 $brew .= ',"est_abv":' . floatval($row['est_abv']); |
|
266 $brew .= ',"est_carb":' . floatval($row['est_carb']); |
|
267 $brew .= ',"est_color":' . floatval($row['est_color']); |
|
268 $brew .= ',"color_method":"' . $row['color_method']; |
|
269 $brew .= '","est_ibu":' . floatval($row['est_ibu']); |
|
270 $brew .= ',"ibu_method":"' . $row['ibu_method']; |
|
271 $brew .= '","mash_sparge_temp":' . $row['mash_sparge_temp']; |
|
272 $brew .= ',"mash_ph":' . $row['mash_ph']; |
|
273 $brew .= ',"mash_name":"' . $row['mash_name']; |
|
274 $brew .= '","fermentables":' . $row['json_fermentables']; |
|
275 $brew .= ',"hops":' . $row['json_hops']; |
|
276 $brew .= ',"miscs":' . $row['json_miscs']; |
|
277 $brew .= ',"yeasts":' . $row['json_yeasts']; |
|
278 $brew .= ',"waters":' . $row['json_waters']; |
|
279 $brew .= ',"mashs":' . $row['json_mashs']; |
|
280 $brew .= '}'; |
|
281 // syslog(LOG_NOTICE, $brew); |
|
282 $brews .= $brew; |
|
283 // syslog(LOG_NOTICE, 'Size: '.strlen($brews).PHP_EOL); |
|
284 } |
|
285 $brews .= ']'; |
|
286 // syslog(LOG_NOTICE, $brews); |
|
287 header("Content-type: application/json"); |
|
288 echo $brews; |
225 } |
289 } |
226 ?> |
290 ?> |