Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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数组的SELECT语句_Php_Mysql_Arrays_Select - Fatal编程技术网

Php 类似MYSQL数组的SELECT语句

Php 类似MYSQL数组的SELECT语句,php,mysql,arrays,select,Php,Mysql,Arrays,Select,希望一切都好 我真的需要一个数据库查询/选择语句的帮助,在我在resultset/query上使用mysqli_fetch_all之后,该语句将为我的PHP数组提供正确的“设计” 我有这两张桌子 产品表: 库存表: 这就是我希望在发送查询并使用mysqli\u fetch\u all之后我的数组的外观(我不知道是否可以使用MYSQL,或者在另一个数据库管理系统中?) 如果可能,以下方法也可以起作用: SELECT语句,为我提供特定产品标识的所有颜色以及这些颜色的可用尺寸。我在同一


希望一切都好

我真的需要一个数据库查询/选择语句的帮助,在我在resultset/query上使用mysqli_fetch_all之后,该语句将为我的PHP数组提供正确的“设计”

我有这两张桌子


产品表:


库存表:




这就是我希望在发送查询并使用mysqli\u fetch\u all之后我的数组的外观(我不知道是否可以使用MYSQL,或者在另一个数据库管理系统中?)



如果可能,以下方法也可以起作用:

SELECT语句,为我提供特定产品标识的所有颜色以及这些颜色的可用尺寸。我在同一行/记录中也需要这个(不知何故,我可以确定哪些尺寸属于正确的颜色)

当然,如果我不希望所有内容都在同一行中,那就更容易了,但是有人可能有一个聪明的解决方案或创造性的想法,知道如何在一行/记录中构造它


//

近地天体更新

select p.id, p.Manufacturer, p.Product_name, group_concat(`Color` separator ';') as `Color`
from
(
  select pid, concat(`Color`, '-',
  group_concat(`Size` separator ',')) as `Color`
  from stock
  group by pid, `Color`
) s, Products p
where p.Id = s.PId
group by p.id;

我在论坛外收到了一份关于我的问题的提案。我应该看看像Redis(Key/Value)这样的数据库。考虑到我想要什么,也许它比MYSQL更适合我


有什么想法吗?

你可能会发现小组讨论很有帮助,尽管你需要对结果进行分割(PHP explode应该可以帮你做到这一点)。嘿。我试过了。GROUP_CONCAT将返回多个记录/行(每种颜色一个,大小按颜色分组)。我需要以某种创造性的方式将所有内容放在一条记录/一行中。@CrazyNeo你能编辑你的问题以显示你尝试过的SQL吗,请特别是小组讨论,然后我会看看我能做些什么来帮助你。@MandyShaw,请再次阅读我的评论(编辑)@CrazyNeo你为什么不能以这样的方式分组/加入数据以获得一行,子数组与组_CONCAT连接后,php可以拆分了吗?请显示不起作用的SQL&我们可以尝试让它做你想要的。Hello@Sydel谢谢你的帖子。您的建议返回一列中特定ID的所有颜色,以及另一列中所有这些颜色的所有大小相加,这样我就无法确定哪些大小属于正确的颜色。请检查这是否有助于您:选择p.ID、p.Manufacturer、p.Product_name、GROUP_CONCAT(不同的CONCAT(s.color,“-”、s.size)按s.color SEPARATOR“;”)从产品p订购,库存s,其中p.Id=s.Product_Id按p.Id分组;非常感谢你,我的朋友,你快到了。你能让它像这样工作吗:黑色,中,小,大;(颜色所有尺寸;颜色所有尺寸)而不是黑色介质;黑色小;黑色大的,那么我可以接受你的解决方案
ID            Product_ID            Color            Size            Quantity

1              1                    Black            Medium          61
2              1                    Black            Large           26
3              1                    Purple           Small           37
4              1                    Red              XSmall          88
5              2                    Green            Medium          74
Array
(
    [0] => Array
        (
            [Product_ID] => 1
            [Manufacturer] => Nike
            [Product_Name] => Air Max Talldress
            [Options] => Array
                (
                    [Black] => Medium, Large
                    [Purple] => Small
                    [Red] => XSmall
                )

        )

    [1] => Array
        (
            [Product_ID] => 2
            [Manufacturer] => Adidas
            [Product_Name] => High Voltage
            [Options] => Array
                (
                    [Green] => Medium
                )

        )

)
select p.id, p.Manufacturer, p.Product_name, group_concat(`Color` separator ';') as `Color`
from
(
  select pid, concat(`Color`, '-',
  group_concat(`Size` separator ',')) as `Color`
  from stock
  group by pid, `Color`
) s, Products p
where p.Id = s.PId
group by p.id;