Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 数据库设计和查询行的帮助_Php - Fatal编程技术网

Php 数据库设计和查询行的帮助

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

这个数据库的设计是什么?它在产品名称中显示三行id,在价格中显示三行,每个字段中显示三行。当我在一行中显示名称、品种和价格时,下一行显示与第一行不同的另一组字段值。我如何通过下面的数据库设计实现这一点

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)我不知道如何接受别人告诉我的答案,但我不知道如何去做。