加入表时遇到麻烦

时间:2016-06-28 19:04:02

标签: php mysql database join

这是我的数据库表,我希望用连接回显一切,但它的dosnt工作。

产品表:

id category_id img name price price_action in_stock category description youtube

分类表:

 category_id category_name

这是我的代码,如何列出所有内容,但其dosnt工作:

<?php
    include ("../db_config.php");

    $sql[0] = "SELECT * FROM products RIGHT JOIN category ON category.category_name=products.category_id";

    $result= mysqli_query($conn,$sql[0]) or die(mysqli_error());
    echo '
    <div id="nlist"><table class="list"><tr>
    <td><b>Name</b></td>
    <td><b>Price</b></td>
    <td><b>Category</b></td>
    </tr>
    <tr>';

    if (mysqli_num_rows($result)>0)
    {
        while ($record = mysqli_fetch_array($result))
        {
            echo "
            <td>$record[name]</td>
            <td>$record[price]</td>
            <td>$record[category_name]</td>
            </tr>";    
        }
    }
    else 
        echo "sikertelen";
?>

2 个答案:

答案 0 :(得分:0)

如果键始终匹配

,则应使用内连接
SELECT * FROM products INNER JOIN category ON category.category_name=products.category_id

或如果键不匹配则离开

SELECT * FROM products LEFT JOIN category ON category.category_name=products.category_id

如果所有键都匹配右连接返回nothings

答案 1 :(得分:0)

您正在加入错误的列。 NAME和ID可能不匹配。

$sql[0] = "SELECT * FROM products RIGHT JOIN category ON category.category_id=products.category_id";

我可以告诉你,因为你在两个表中都显示了category_id。