显示mysql数据库中的所有项目

时间:2017-04-24 08:19:18

标签: php mysql

我的数据库中有表格产品表格类别。我想在一个表格中动态显示所有类别,在每个类别的表格内显示所有属于该类别的项目。

这些类别和项目应如下所示: enter image description here

这是我的工作编码:

$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 。其余类别无法显示。我猜我的编码可能因为编程错误而无法正常循环,因为它无法显示预期的输出。

3 个答案:

答案 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)

您可以选择加入类别表的所有值,并按类别ID对其进行分组。

请参阅Group array by subarray values

之后,您可以通过访问子阵列遍历每个类别的每个产品。