Php 数据库设计和查询行的帮助
这个数据库的设计是什么?它在产品名称中显示三行id,在价格中显示三行,每个字段中显示三行。当我在一行中显示名称、品种和价格时,下一行显示与第一行不同的另一组字段值。我如何通过下面的数据库设计实现这一点Php 数据库设计和查询行的帮助,php,Php,这个数据库的设计是什么?它在产品名称中显示三行id,在价格中显示三行,每个字段中显示三行。当我在一行中显示名称、品种和价格时,下一行显示与第一行不同的另一组字段值。我如何通过下面的数据库设计实现这一点 CREATE TABLE products ( id INT PRIMARY KEY NOT NULL AUTO_INCREMENT, name VARCHAR(255) ); CREATE TABLE product_varieties ( product_id INT, variety VA
CREATE TABLE products (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
name VARCHAR(255)
);
CREATE TABLE product_varieties (
product_id INT,
variety VARCHAR(100),
price DOUBLE,
description TEXT,
PRIMARY KEY (product_id, variety)
);
INSERT INTO products (id, name) VALUES (1, 'Cotél de camarone');
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Small Tray', 2.9);
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Medium Tray', 6.9);
INSERT INTO product_varieties (product_id, variety, price) VALUES (1, 'Large Tray', 8.9);
。
同样,我希望价格2.9显示在第一行的小托盘上,然后6.9显示在第一行的中托盘上,8.9显示在第一行的大托盘上。现在是显示行的价格
帮助。尝试将数据转换为类似于树的结构(数组的数组),以“分组”形式输出更简单 类似这样的内容(伪代码) 这将构建一个类似于
1 => array
name => 'Cotél de camarone',
varieties => array
array(1, 'Small Tray', 2.9)
array(1, 'Medium Tray', 6.9)
etc
2 => array
name => 'Something else',
varieties => array
array(1, 'Small Tray', 2.9)
array(1, 'Medium Tray', 6.9)
etc
循环此数组并生成所需的html结构
foreach($tree as $product)
<div>
echo $product['name']
foreach($product['varieties'] as $variety)
etc etc
</div>
foreach($tree as$product)
echo$product['name']
foreach($product['VARITYS']作为$VARITY)
等等
希望我讲得有道理尝试将数据转换为类似于树的结构(数组数组的数组),以“分组”形式输出要简单得多 类似这样的内容(伪代码) 这将构建一个类似于
1 => array
name => 'Cotél de camarone',
varieties => array
array(1, 'Small Tray', 2.9)
array(1, 'Medium Tray', 6.9)
etc
2 => array
name => 'Something else',
varieties => array
array(1, 'Small Tray', 2.9)
array(1, 'Medium Tray', 6.9)
etc
循环此数组并生成所需的html结构
foreach($tree as $product)
<div>
echo $product['name']
foreach($product['varieties'] as $variety)
etc etc
</div>
foreach($tree as$product)
echo$product['name']
foreach($product['VARITYS']作为$VARITY)
等等
希望我说的有道理每个不同的产品总是有相同的三个品种吗?每个不同的产品总是有相同的三个品种吗?在左边的连接中,您的意思是在product\u Varies.product\u id=id处连接?我在产品中没有关系数据库product_id字段,我使用id而不是product_id作为产品和products.Varies表之间的关系数据库字段。谢谢。3个小时后它就开始工作了。。非常感谢您,我一直在尝试使用foreach父级中的form action url字符串中while循环中生成的id,就像您在partent foreach中使用name索引一样。我已经尝试过回显和打印一些它不会显示id的方式,或者如果我打印它,那么它将显示每行三行id,比如1113334455,我只希望能够像echo$product['name']那样拥有每行id,每个迭代只打印索引['name']的一行。下面的表单不会回显任何内容,我把它改为打印,然后它会打印11122233444帮助。。foreach($tree as$product)我不知道如何接受别人告诉我的答案,但我不知道如何去做。在左边的join中,你想加入product\u variates.product\u id=id?我在产品中没有关系数据库product_id字段,我使用id而不是product_id作为产品和products.Varies表之间的关系数据库字段。谢谢。3个小时后它就开始工作了。。非常感谢您,我一直在尝试使用foreach父级中的form action url字符串中while循环中生成的id,就像您在partent foreach中使用name索引一样。我已经尝试过回显和打印一些它不会显示id的方式,或者如果我打印它,那么它将显示每行三行id,比如1113334455,我只希望能够像echo$product['name']那样拥有每行id,每个迭代只打印索引['name']的一行。下面的表单不会回显任何内容,我把它改为打印,然后它会打印11122233444帮助。。foreach($tree as$product)我不知道如何接受别人告诉我的答案,但我不知道如何去做。