php - 如何设置 PHP 循环以获取产品并创建规格表
问题描述
我在数据库中有两个表。附上相同的图像。
两个表中的“名称”行相同。表 1 包含每个项目的规格细节。表 2 只是应包含在整个页面上的产品名称列表。我想获取每个产品名称的所有规格。例如,产品 Rajwadi 餐具应从表 1 中获取其所有规格。我需要添加大约 50 个这样的产品。我希望它显示的方式也显示在下图中。
我一直在尝试的代码是这样的:
<?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;
}
现在您有一个项目数组,每个项目将包含该项目的片段列表。
推荐阅读
- r - 留一,但对于 R 中的组
- c++ - 在随机生成的数组中查找重复的连续数字
- wolfram-mathematica - 绘制具有多个 y 值的单个 x 而不单独指定所有 y 值mathematica
- javascript - 在 react-split-pane 中调整两个窗格的大小时遇到问题
- wordpress - 在 woocommerce 产品页面中使用自定义 product-image.php 文件
- python - 时间戳作为sql查询中的变量
- html - 把我的网站分成几个块
- javascript - 从 RxJs 5 迁移到 6:switchMap 和 Interval 损坏
- python - 使用多个输入测试 Click 应用程序提示
- c - 使用两个函数生成随机数数组