2016-06-28 67 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 

如果所有的鑰匙匹配右連接返回空話