微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何设置 PHP 循环以获取产品并创建规格表

如何解决如何设置 PHP 循环以获取产品并创建规格表

我在一个数据库中有两个表。附上相同的图片

表 1:dinner_set

Table 1: dinner_set

表 2:名称

Table 2: names

两个表中的“名称”行相同。表 1 由每个项目的规格详细信息组成。表 2 只是应该包含在整个页面上的产品名称列表。 我想获取每个产品名称的所有规格。 例如,Product Rajwadi 晚餐套装应从表 1 中获取其所有规格。 我需要添加大约 50 个这样的产品。 我希望它的显示方式也如下图所示。

Content

我一直在尝试的代码是这样的:

<?PHP
    
include("connection.PHP");

$db_dinner_set = "dinner_set";
$db_names = "names";

$query2= "SELECT * FROM $db_names";
//echo($query);
$statement2 = $connection2->prepare($query2);
$statement2->execute(); 
$result2 = $statement2->fetchAll();
            
foreach($result2 as $row){
  echo '
    '.$row['Name'].'
    <br>
    <br>
  ';
  $Name = $row['Name'];
  $query3= "SELECT * FROM $db_dinner_set WHERE Name = $Name ";
  //echo ($query3);
  $statement3 = $connection2->prepare($query3);
  $statement3->execute(); 
  $result3 = $statement3->fetchAll();
  foreach($result3 as $row)
  {
    echo '   
      <div class="poem-genre">
        '.$row['Items'].'
      </div>
    ';
  }
}
?>

解决方法

您的桌子设计需要一些工作,但您仍然可以完成任务。按名称加入表格(不理想):

SELECT d.Name,d.Items,d.pieces,d.image FROM dinner_set d LEFT JOIN names n ON d.Name = n.Name

然后在 PHP 中循环遍历结果,为每个项目构建一个对象。

$items = [];

foreach($result3 as $row){

    // Add item by name
    if (!array_key_exists($row['name'],$items)) {
        $items[$row['name']] = [];
    }
    $piece = [];
    // Add attributes of the particular piece
    $piece['name'] = $row[Items];
    $piece['qty'] = $row[pieces];
    
    // Assign this piece to this item
    $items[$row['name']][] = $piece;

}

现在您有一个项目数组,每个项目都将包含该项目的零件列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。