我的数据库中有表格产品和表格类别。我想在一个表格中动态显示所有类别,在每个类别的表格内显示所有属于该类别的项目。
这是我的工作编码:
$fetch_cat = "SELECT * FROM tblcat"; //fetch from table category
$result = $conn->query($fetch_cat);
if ($result->num_rows > 0)
{
while($cat_row = mysqli_fetch_assoc($result))
{
$cat_title = $cat_row['catName'];
echo '<table>';
echo '<tr>';
echo '<td><img src="category/'.$cat_row['catImg'].'" /></td>';
echo '<td>';
echo '<ul class="content_init">';
$stmt = "SELECT * FROM tblproduct WHERE prodCat = '".addslashes($cat_title)."' LIMIT 4"; //fetch from table product
$result = $conn->query($stmt);
if ($result->num_rows > 0)
{
while($row = mysqli_fetch_assoc($result))
{
echo '<li>';
echo '<a href="#"><img style="height: 188px; width: 188px;" src="user_images/'.$row['prodImg'].'" />';
echo '<br /><br />';
echo '<h4>'.$row['prodName'].'</h4>';
echo '<label><span>RM </span>'.$row['prodPrice'].'</label></a>';
echo '</li>';
}
}
echo '</ul>';
echo '</td>';
echo '</tr>';
echo '</table>';
}
}
问题:
所以我的编码问题是,它只能显示属于它的项目的类别1 。其余类别无法显示。我猜我的编码可能因为编程错误而无法正常循环,因为它无法显示预期的输出。
答案 0 :(得分:0)
$result1 = $conn->query($stmt);
if ($result1->num_rows > 0)
{
while($row = mysqli_fetch_assoc($result1))
{
你的方法不好/最佳。您可以查询类别,然后查询每个类别的一个查询,因此如果您有10个类别,则您的代码将执行11个查询。您应该只使用INNER JOIN
答案 1 :(得分:0)
内部查询重用$result
变量,因此第一个结果覆盖。
更改$result
变量的变量名称。
答案 2 :(得分:0)