Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL+;调整当前查询以从另一个表中获取附加数据(每列)_Php_Mysql - Fatal编程技术网

Php MySQL+;调整当前查询以从另一个表中获取附加数据(每列)

Php MySQL+;调整当前查询以从另一个表中获取附加数据(每列),php,mysql,Php,Mysql,这是来自上一个线程的新问题/更新。 感谢member@Nick的帮助,我正在使用PHP和MySQL通过查询返回一些数据 我目前需要帮助来调整当前查询,以便以某种方式从当前返回的行/数据中的另一个表返回替换数据 以下是一些当前的表设置示例,以及当前的查询状态: 雷克斯测试仪: SQL FIDDLE: 它目前的工作原理与我在上一个请求中概述的一样,但一旦我使用它,我意识到我错过了一个要求,事后我觉得这相当重要……哈哈(对不起) 当前状态:(按预期工作) 返回“barbot#U饮料”表中所有行的

这是来自上一个线程的新问题/更新。

感谢member@Nick的帮助,我正在使用PHP和MySQL通过查询返回一些数据

我目前需要帮助来调整当前查询,以便以某种方式从当前返回的行/数据中的另一个表返回替换数据

以下是一些当前的表设置示例,以及当前的查询状态:

雷克斯测试仪:

SQL FIDDLE:

它目前的工作原理与我在上一个请求中概述的一样,但一旦我使用它,我意识到我错过了一个要求,事后我觉得这相当重要……哈哈(对不起)

当前状态:(按预期工作) 返回“barbot#U饮料”表中所有行的查询[其中(1-15)种成分由(每种3可乐)#分配器##代码#和#剂量#]组成]。。每一种都可以在barbot_配料表中找到,并且都是活性的

如果任何“配药器”、“代码”和“剂量”列为空,则整个“成分”无效……且空字段不计算……通常表示饮料配方的结束(一种饮料最多只能含有15种成分)

例如: 如果饮料配方/条目仅包含2个“成分”(成分\u 1\u分配器、成分\u 1\u代码、成分\u 1\u剂量和成分\u 2\u分配器、成分\u 2\u代码和成分\u 2\u剂量)

伏特加和OJ

它检查配料表,查看barbot_配料表中是否存在伏特加和OJ条目,并且是否处于活动状态

这就是我们现在的处境

我需要尝试做的是从barbot_配料-每种-配料\u x_代码列(每种饮料可能为1-15种)中获取返回的每种饮料的“分发器订单”值。(即:该特殊饮料的所有成分均在成分表中找到并具有活性)

我正在解析每一行,并使用PHP从这个查询的结果集中创建一个字符串

我目前正在创建的内容:

示例(螺旋传动): (经过php脚本解析后)

瓶子=vdk:1,阀门=oj:2000

或(列名称)

[配料机]=[配料机代码]:[配料机剂量],[配料机]=[配料机代码]:[配料机剂量]

我需要构建的是:

瓶子=1:1,阀门=1:2000

[配料1配药器]=[配料1配药器]=[配料2配药器]=[配料2配药器]=[配料2配药器]=[strong>[配料1配药器][[配料2配药器]=[配料2配药器订单-配料2配药器-配料表配药器-配料2配药器-配料2配药器-配料2配药器配药器]

ie:(经过php脚本解析后)

瓶子=[########分配器#订单-来自与此集合匹配的#配料表-=配料#1####]1,

阀门=[########分配器#订单-来自与此集合匹配的#配料表-=配料#####]:2000

由于有1-15个可能的列组合,当前很长,但我还要求提供一些易于阅读的内容,以便我也能理解并从中学习。。(就像我到目前为止所做的那样!)


让我知道我是否可以提供任何其他信息,或者我是否有任何不清楚的地方。我想提供完整的背景资料,工作代码的链接,以及我正在得到/正在做的事情和我想要得到/正在做的事情的示例。

由于数据库没有正常化,事情开始变得非常混乱。此查询将为您提供所需的结果。不幸的是它对SQLFiddle来说太大了。。。但雷克斯特似乎能处理好它

以下是输出:

id  drink_id    drink_name      drink_image         drink_desc                  ingredient_1_dispenser  ingredient_1_code   ingredient_1_dosage     ingredient_1_dispenser_order    ingredient_2_dispenser  ingredient_2_code   ingredient_2_dosage     ingredient_2_dispenser_order    ingredient_3_dispenser  ingredient_3_code   ingredient_3_dosage     ingredient_3_dispenser_order
1   vdk_org     Screw Driver    screw_driver.jpg    Screw Driver description... bottle                  vdk                 1                       1                               valve                   oj                  2000                    1       
2   vdk_cran    Cape Cod        cape_cod.jpg        Cape Cod description...     bottle                  vdk                 1                       1                               valve                   cbj                 2000                    2   
3   dry_mrtn    Dry Martini     dry_martini.jpg     Dry Martini description...  bottle                  vdk                 2.5                     1                               bottle                  vrmth               .5                      7                               valve                   orgbit              200                     3       
以下是更新后的查询:

SELECT id, drink_id, drink_name, drink_image, drink_desc,
    ingredient_1_dispenser, ingredient_1_code, ingredient_1_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_1_dispenser AND i.ingredient_code = d.ingredient_1_code), '') AS ingredient_1_dispenser_order,
    ingredient_2_dispenser, ingredient_2_code, ingredient_2_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_2_dispenser AND i.ingredient_code = d.ingredient_2_code), '') AS ingredient_2_dispenser_order,
    ingredient_3_dispenser, ingredient_3_code, ingredient_3_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_3_dispenser AND i.ingredient_code = d.ingredient_3_code), '') AS ingredient_3_dispenser_order,
    ingredient_4_dispenser, ingredient_4_code, ingredient_4_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_4_dispenser AND i.ingredient_code = d.ingredient_4_code), '') AS ingredient_4_dispenser_order,
    ingredient_5_dispenser, ingredient_5_code, ingredient_5_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_5_dispenser AND i.ingredient_code = d.ingredient_5_code), '') AS ingredient_5_dispenser_order,
    ingredient_6_dispenser, ingredient_6_code, ingredient_6_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_6_dispenser AND i.ingredient_code = d.ingredient_6_code), '') AS ingredient_6_dispenser_order,
    ingredient_7_dispenser, ingredient_7_code, ingredient_7_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_7_dispenser AND i.ingredient_code = d.ingredient_7_code), '') AS ingredient_7_dispenser_order,
    ingredient_8_dispenser, ingredient_8_code, ingredient_8_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_8_dispenser AND i.ingredient_code = d.ingredient_8_code), '') AS ingredient_8_dispenser_order,
    ingredient_9_dispenser, ingredient_9_code, ingredient_9_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_9_dispenser AND i.ingredient_code = d.ingredient_9_code), '') AS ingredient_9_dispenser_order,
    ingredient_10_dispenser, ingredient_10_code, ingredient_10_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_10_dispenser AND i.ingredient_code = d.ingredient_10_code), '') AS ingredient_10_dispenser_order,
    ingredient_11_dispenser, ingredient_11_code, ingredient_11_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_11_dispenser AND i.ingredient_code = d.ingredient_11_code), '') AS ingredient_11_dispenser_order,
    ingredient_12_dispenser, ingredient_12_code, ingredient_12_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_12_dispenser AND i.ingredient_code = d.ingredient_12_code), '') AS ingredient_12_dispenser_order,
    ingredient_13_dispenser, ingredient_13_code, ingredient_13_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_13_dispenser AND i.ingredient_code = d.ingredient_13_code), '') AS ingredient_13_dispenser_order,
    ingredient_14_dispenser, ingredient_14_code, ingredient_14_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_14_dispenser AND i.ingredient_code = d.ingredient_14_code), '') AS ingredient_14_dispenser_order,
    ingredient_15_dispenser, ingredient_15_code, ingredient_15_dosage,
    COALESCE((SELECT dispenser_order FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_15_dispenser AND i.ingredient_code = d.ingredient_15_code), '') AS ingredient_15_dispenser_order
FROM barbot_drinks d
WHERE (ingredient_1_dispenser = '' AND ingredient_1_code = '' AND ingredient_1_dosage = '' OR
       ingredient_1_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_1_dispenser AND i.ingredient_code = d.ingredient_1_code)) AND
      (ingredient_2_dispenser = '' AND ingredient_2_code = '' AND ingredient_2_dosage = '' OR
       ingredient_2_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_2_dispenser AND i.ingredient_code = d.ingredient_2_code)) AND
      (ingredient_3_dispenser = '' AND ingredient_3_code = '' AND ingredient_3_dosage = '' OR
       ingredient_3_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_3_dispenser AND i.ingredient_code = d.ingredient_3_code)) AND
      (ingredient_4_dispenser = '' AND ingredient_4_code = '' AND ingredient_4_dosage = '' OR
       ingredient_4_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_4_dispenser AND i.ingredient_code = d.ingredient_4_code)) AND
      (ingredient_5_dispenser = '' AND ingredient_5_code = '' AND ingredient_5_dosage = '' OR
       ingredient_5_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_5_dispenser AND i.ingredient_code = d.ingredient_5_code)) AND
      (ingredient_6_dispenser = '' AND ingredient_6_code = '' AND ingredient_6_dosage = '' OR
       ingredient_6_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_6_dispenser AND i.ingredient_code = d.ingredient_6_code)) AND
      (ingredient_7_dispenser = '' AND ingredient_7_code = '' AND ingredient_7_dosage = '' OR
       ingredient_7_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_7_dispenser AND i.ingredient_code = d.ingredient_7_code)) AND
      (ingredient_8_dispenser = '' AND ingredient_8_code = '' AND ingredient_8_dosage = '' OR
       ingredient_8_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_8_dispenser AND i.ingredient_code = d.ingredient_8_code)) AND
      (ingredient_9_dispenser = '' AND ingredient_9_code = '' AND ingredient_9_dosage = '' OR
       ingredient_9_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_9_dispenser AND i.ingredient_code = d.ingredient_9_code)) AND
      (ingredient_10_dispenser = '' AND ingredient_10_code = '' AND ingredient_10_dosage = '' OR
       ingredient_10_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_10_dispenser AND i.ingredient_code = d.ingredient_10_code)) AND
      (ingredient_11_dispenser = '' AND ingredient_11_code = '' AND ingredient_11_dosage = '' OR
       ingredient_11_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_11_dispenser AND i.ingredient_code = d.ingredient_11_code)) AND
      (ingredient_12_dispenser = '' AND ingredient_12_code = '' AND ingredient_12_dosage = '' OR
       ingredient_12_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_12_dispenser AND i.ingredient_code = d.ingredient_12_code)) AND
      (ingredient_13_dispenser = '' AND ingredient_13_code = '' AND ingredient_13_dosage = '' OR
       ingredient_13_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_13_dispenser AND i.ingredient_code = d.ingredient_13_code)) AND
      (ingredient_14_dispenser = '' AND ingredient_14_code = '' AND ingredient_14_dosage = '' OR
       ingredient_14_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_14_dispenser AND i.ingredient_code = d.ingredient_14_code)) AND
      (ingredient_15_dispenser = '' AND ingredient_15_code = '' AND ingredient_15_dosage = '' OR
       ingredient_15_dosage != '' AND EXISTS(SELECT * FROM barbot_ingredients i WHERE i.active = 1 AND i.dispenser_type = d.ingredient_15_dispenser AND i.ingredient_code = d.ingredient_15_code))

解释得太多了?不清楚?太难完成?英雄联盟任何东西还有什么我可以提供给你的吗?谢谢!我在路上上班。因此,我将尝试在今天的某个时候试一试!欣赏你的眼睛。。回复:正常化-我浏览了链接。。。并将本文理解为确保每个表仅涉及项目的特定方面。。当我考虑如何将其应用于我目前的设置时。。我唯一能想到的可能就是把饮料的图片、描述等东西放到一张新桌子上。。(但我并不确定这是否值得……或者这将如何帮助查询变得更容易?)