我制作了一个包含3个项目的页面。那3个项目确实有子项目。 示例:
项目1:袋子1 子项目1名称:shampo 子项目1的选择:薰衣草,果皮,橙色
子项目2毛巾 子项目2选项:棕色,黄色,红色,蓝色
项目2:袋子2 子项目1的选择:薰衣草,果皮,橙色
子项目2毛巾 子项目2选项:棕色,黄色,红色,蓝色
子项目3 Cookie 子项目3选项:圆形,正方形,三角形。
所有这些项目,子项目和子项目视蛋白在我的数据库中分为3个表。这是我连接在一起的桌子的图片
这是从收集的tqable中获取的sql代码:
SELECT item_id, subitem_name, subitem_optie1, subitem_optie2, subitem_optie3, subitem_optie4
FROM item
LEFT JOIN itemsubitem ON item.item_id = itemsubitem.FK_item_id
LEFT JOIN subitem ON itemsubitem.FK_subitem_id = subitem.subitem_id
ORDER BY item_id ASC, subitem_id ASC
我在1行上有3个项目(按网格) 所以每一行都循环遍历所有项目。这是第一个循环。 第1、2、3项 然后,我想显示所有子项目和子项目选项。 我必须在第二个循环中执行此操作。 这是因为1个项目可以有更多子项目,而每个子项目都可以有更多子项目选项。
第二个循环中的子项和子项选项必须在第一个循环中引用item_id。所以他们匹配。 我试图在WHERE子句中执行此操作,但是我不知道这是正确的方法,显然不是,否则应该起作用 我该怎么做: 这是我尝试过的方法,但是id无效。
<div class="container">
<!-- Winkelmand vullen -->
<?php
$sql = 'SELECT * FROM item ORDER BY item_ID ASC';
$result = mysqli_query($databaseconnect, $sql);
if ($result) {
if(mysqli_num_rows($result)>0){
while($item = mysqli_fetch_assoc($result)){
?> <form method="POST" action="index.php?action=add&id=<?php echo $item['item_id'];?>"> <!-- We geven hier de Itemid mee. -->
<div class="row">
<div class="column">
<h2><?php echo $item['item_name'];?></h2>
<img src="http://77.172.107.96/ronald/img/item/<?php echo $item['item_image'];?>" class="img-responsive">
<p><?php echo '€'.' '.$item['item_price'];?></p>
<?php
$sql2 = 'SELECT item_id, subitem_name, subitem_optie1, subitem_optie2, subitem_optie3, subitem_optie4
FROM item
LEFT JOIN itemsubitem ON item.item_id = itemsubitem.FK_item_id
LEFT JOIN subitem ON itemsubitem.FK_subitem_id = subitem.subitem_id
WHERE item.item_id = $item["item_id"]
ORDER BY item_id ASC, subitem_id ASC'
$resultaat = mysqli_query($databaseconnect, $sql2);
if ($resultaat) {
if(mysqli_num_rows($resultaat)>0){
while($subitem = mysqli_fetch_assoc($resultaat)){
?>
<div class="checkboxen">
<h1><?php echo $subitem['subitem_name'];?></h1>
<label class="vuilnisbak"><?php echo $subitem['subitem_optie1'];?>
<input type="radio" name="kleursoapfix" checked="checked">
<span class="checkmark"></span>
</label>
<label class="vuilnisbak"><?php echo $subitem['subitem_optie1'];?>
<input type="radio" name="kleursoapfix">
<span class="checkmark"></span>
</label>
<label class="vuilnisbak"><?php echo $subitem['subitem_optie1'];?>
<input type="radio" name="kleursoapfix">
<span class="checkmark"></span>
</label>
<label class="vuilnisbak"><?php echo $subitem['subitem_optie1'];?>
<input type="radio" name="kleursoapfix">
<span class="checkmark"></span>
</label>
<?php
}
}
}
?>
<input type="submit" name="add_to_cart" class="btn btn-info" value="Add to cart"/><!-- Submit button. -->
</div>
</div>
</form>
<?php
}
}
}
?>
此处是应如何显示项目,子项目和子项目选项的打印屏幕 enter image description here
更新: 如果我使用此查询,它将显示所有项目,但不显示子项目。我想WHERE子句的语法不正确,因为我要在哪里将第二个循环中的项目编号链接到第一个循环项目
$sql2 = 'SELECT FK_item_id, subitem_name, subitem_optie1, subitem_optie2, subitem_optie3, subitem_optie4
FROM itemsubitem
LEFT JOIN subitem ON itemsubitem.FK_subitem_id = subitem.subitem_id
WHERE FK_item_id = $item["item_id"]
ORDER BY item_id ASC, subitem_id ASC';
数字enter code here