【发布时间】:2019-03-28 18:19:18
【问题描述】:
我从两个表“pizza”和“size”中选择数据。在“pizza”表中,我们在“size”表“pizza_id、size_id、size、price”中有一个字段名称“pizza_id、pizza_name、pizza_img”。当我们选择第一个披萨时,“尺寸”表中的尺寸是小,中,大。它显示在下拉菜单中。问题是当我们点击披萨的第一个尺寸(小)并点击按钮时表明您正在选择最后(大)尺寸的披萨。每次我选择任何尺寸的披萨时,都表明您正在选择大(size_id:3)尺寸的披萨。所以我不知道如何解决这个问题。如果有人可以理解我的问题,而不是请帮助我,我被严重卡住了。谢谢你
$query = "SELECT * FROM pizza";
$run = mysqli_query($con, $query);
while($row=mysqli_fetch_array($run)){
$pizza_id = $row['pizza_id'];
$pizza_name = $row['pizza_name'];
$pizza_img = $row['pizza_img'];
echo "<div class='pizza_details'>
<img src='admin/img/$pizza_img' width='200px' height='150px'
id='profile-image' />
<div class='desc'>
<ul>
<li><span style='color:yellow;'>Name</span> : $pizza_name</li>
</ul>";
$q = "SELECT * FROM size where pizza_id='$pizza_id'";
$r = mysqli_query($con, $q);
echo "<select name='size'>";
while ($new=mysqli_fetch_array($r)){
$size_id = $new['size_id'];
$size = $new['size'];
$price = $new['price'];
echo"<option value='$size_id'>$size</option>";
}//End-while loop
echo"</select>
<ul><li>
<a href='pizza.php?add_cart=$pizza_id&size_id=$size_id'>Add to Cart</a>
</li></ul>
</div>
<div class='clear'></div>
</div>";
}//End-While Loop
【问题讨论】:
-
你是如何得到 $pizza_id 的尺寸的?在这个流程中,这真的是你的代码全部在 php 中吗?您没有接受任何用户输入。在您的“添加到购物车”链接中,您基本上已经将 Pizza_id 和 size_id 硬编码为循环中的最后一个值。
-
基本上 $pizza_id 在比萨表中是主键,在大小表中是外键。所以在大小表中,$pizza_id 存储在三行中。 "size" 表中 $pizza_id 的所有尺寸都是相同的,但它的 $size_id 不同,当我们点击添加到购物车链接时,它会获取选定的尺寸值并发送到购物车。
-
我了解数据库。但是您没有在任何地方收集用户的选择/输入。流程应该是显示比萨饼列表,当用户选择比萨饼时,您提交值(通过表单或 ajax)并使用选定的比萨饼 id 来决定大小,然后动态创建 URL 以添加到当前选择的比萨饼 id 的购物车和尺寸标识。您没有收集和提交任何用户操作。只是一个带有硬编码最后一个 ID 的链接。
-
非常感谢,希望您的指导对我有用。
标签: php mysqli drop-down-menu while-loop