2016-06-28 110 views
0

这里是我的数据库表,我想回应所有与联接,但它的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

你加入了NAME = ID。这可能是不正确的。 – durbnpoisn

回答

0

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

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

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

+0

是的,它的工作。非常感谢:)看起来像我太累了这个:( – Achy

+0

Eggsellent!(请接受答案,除非你不能) – durbnpoisn

+0

4分钟,我可以:D – Achy

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 

如果所有的钥匙匹配右连接返回空话