PHP循环槽数据库,带有从子项到项的链接

时间:2019-03-18 10:55:26

标签: php mysql

我制作了一个包含3个项目的页面。那3个项目确实有子项目。 示例:

项目1:袋子1 子项目1名称:shampo 子项目1的选择:薰衣草,果皮,橙色

子项目2毛巾 子项目2选项:棕色,黄色,红色,蓝色

项目2:袋子2 子项目1的选择:薰衣草,果皮,橙色

子项目2毛巾 子项目2选项:棕色,黄色,红色,蓝色

子项目3 Cookie 子项目3选项:圆形,正方形,三角形。

所有这些项目,子项目和子项目视蛋白在我的数据库中分为3个表。这是我连接在一起的桌子的图片

enter image description here

这是从收集的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 '&#8364;'.' '.$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

0 个答案:

没有答案