最近几天我一直在理解并获取正确的代码组合,以创建一种将配方输入数据库的表单。我知道关于Concat语法存在“相似”的问题和讨论,但是从头到尾,包括html都是我从未发现过的食谱。
在这里我找到了用于创建数据库的数据,然后(尝试)使用以下代码(来自guignol-这是我能找到的最完整和最新的代码):SO recipe database
我已经在“配方”表中添加了几列。我现在没有问题,可以使用所有找到的代码将数据输入数据库(尽管我确实必须进行更新并进行细微更改以使用“按原样”代码消除错误)。
我正在使用mysqli和php以防万一。如果有人有更好的解决方案,我很乐意换马。我也知道很多人有各种各样的方法。但是,由于每个条目之间的关系和差异,配方很难破解。我希望伟大的“食谱大师”能找到这篇文章,并给我很好的建议。
此处的“完整”错误:
解析错误:语法错误,第57行的C:\ wamp64 \ www \ LocalHire \ trials \ mencook-recipes.php中出现意外的“食谱”(T_STRING)
第57行是第一个LEFT JOIN语法。
我仍在研究中,并且找到了解决“第一个”错误的方法。因此,与其重新启动,也不是因为该问题与我的问题的其他答案(“不是”答案)相似,如果这个问题被启动,我将继续进行研究。许多答案是不完整的,特别是对于那些没有在CONCAT和LEfT JOIN中受过教育的人。因此,当找到“一个”答案时,我通常会尝试代码,遇到很多错误,然后尝试以1比1的方式解决它们。但是在这种情况下,我不知道如何左加入。我终于通过了CONCAT。
这就是我要选择的数据:
$sql = "SELECT recipes.id, recipes.name AS recipeName, ingredients.name AS ingredientNeeded, CONCAT(ingredients_recipes.Qty,' ',neededUnities.name) AS neededQuantity, CONCAT(inventories.qty,' ',inventoryUnities.name) AS availableQuantity FROM recipes"
LEFT JOIN ingredients_recipes ON recipes.id=ingredients_recipes.recipe_id
LEFT JOIN ingredients ON ingredients_recipes.ingredient_id = ingredients.id
LEFT JOIN inventories ON ingredients.id=inventories.ingredient_id
LEFT JOIN unities AS inventoryUnities ON inventories.unity_id=inventoryUnities.id
LEFT JOIN unities AS neededUnities ON ingredients_recipes.unity_id=neededUnities.id
WHERE inventories.`update` = (SELECT MAX(`update`) FROM inventories AS inv WHERE inv.ingredient_id = inventories.ingredient_id);