Wed, 06 May 2020 14:14:14 +0200
Removed the last compressed css file. Reworked all mash steps, implemented deconction steps. Added calculations for infuse amounts and decoctions amounts. The mash steps are now manually sorted in the editor grids to have full control over the steps order. Display errors in red in the grid. Updated beerxml export, the product checklist and print output of the products and recipes for all these mash steps changes.
<?php require($_SERVER['DOCUMENT_ROOT']."/config.php"); require($_SERVER['DOCUMENT_ROOT']."/version.php"); #Connect to the database $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); if (! $connect) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } mysqli_set_charset($connect, "utf8" ); if (isset($_POST['insert']) || isset($_POST['update'])) { if (isset($_POST['insert'])) { $sql = "INSERT INTO `profile_styles` SET "; } if (isset($_POST['update'])) { $sql = "UPDATE `profile_styles` SET "; } $sql .= "name='" . mysqli_real_escape_string($connect, $_POST['name']); $sql .= "', category='" . mysqli_real_escape_string($connect, $_POST['category']); $sql .= "', category_number='" . $_POST['category_number']; $sql .= "', style_letter='" . mysqli_real_escape_string($connect, $_POST['style_letter']); $sql .= "', style_guide='" . mysqli_real_escape_string($connect, $_POST['style_guide']); $sql .= "', type='" . $_POST['type']; $sql .= "', og_min='" . $_POST['og_min']; $sql .= "', og_max='" . $_POST['og_max']; $sql .= "', fg_min='" . $_POST['fg_min']; $sql .= "', fg_max='" . $_POST['fg_max']; $sql .= "', ibu_min='" . $_POST['ibu_min']; $sql .= "', ibu_max='" . $_POST['ibu_max']; $sql .= "', color_min='" . $_POST['color_min']; $sql .= "', color_max='" . $_POST['color_max']; $sql .= "', carb_min='" . $_POST['carb_min']; $sql .= "', carb_max='" . $_POST['carb_max']; $sql .= "', abv_min='" . $_POST['abv_min']; $sql .= "', abv_max='" . $_POST['abv_max']; $sql .= "', notes='" . mysqli_real_escape_string($connect, $_POST['notes']); $sql .= "', profile='" . mysqli_real_escape_string($connect, $_POST['profile']); $sql .= "', ingredients='" . mysqli_real_escape_string($connect, $_POST['ingredients']); $sql .= "', examples='" . mysqli_real_escape_string($connect, $_POST['examples']); if (isset($_POST['insert'])) { $sql .= "';"; } if (isset($_POST['update'])) { $sql .= "' WHERE record='" . $_POST['record'] . "';"; } $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_styles: ".$sql." result: ".mysqli_error($connect)); } else { if (isset($_POST['update'])) { syslog(LOG_NOTICE, "db_profile_styles: updated record ".$_POST['record']); } else { $lastid = mysqli_insert_id($connect); syslog(LOG_NOTICE, "db_profile_styles: inserted record ".$lastid); } } echo $result; } else if (isset($_POST['delete'])) { // DELETE COMMAND $sql = "DELETE FROM `profile_styles` WHERE record='".$_POST['record']."';"; $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_styles: ".$sql." result: ".mysqli_error($connect)); } else { syslog(LOG_NOTICE, "db_profile_styles: deleted record ".$_POST['record']); } echo $result; } else { // SELECT COMMAND $query = "SELECT * FROM profile_styles ORDER BY style_guide,style_letter,name"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $styles[] = array( 'record' => $row['record'], 'name' => $row['name'], 'category' => $row['category'], 'category_number' => $row['category_number'], 'style_letter' => $row['style_letter'], 'style_guide' => $row['style_guide'], 'type' => $row['type'], 'og_min' => $row['og_min'], 'og_max' => $row['og_max'], 'fg_min' => $row['fg_min'], 'fg_max' => $row['fg_max'], 'ibu_min' => $row['ibu_min'], 'ibu_max' => $row['ibu_max'], 'color_min' => $row['color_min'], 'color_max' => $row['color_max'], 'carb_min' => $row['carb_min'], 'carb_max' => $row['carb_max'], 'abv_min' => $row['abv_min'], 'abv_max' => $row['abv_max'], 'notes' => $row['notes'], 'profile' => $row['profile'], 'ingredients' => $row['ingredients'], 'examples' => $row['examples'] ); } header("Content-type: application/json"); echo json_encode($styles); } ?>