2013-03-26 54 views
0

我有一個查詢返回一個項目的詳細信息。它屬於某一類別;因此我已將ITEMS錶鏈接到CATEGORIES表,並將外鍵保存到ITEMS表中。用INNER JOIN提取類別名稱

現在,我希望任何選定項目的細節也顯示類別名稱而不是外鍵。我嘗試瞭如下INNER JOIN,但令人驚訝的是,查詢仍顯示一個外鍵。

這裏是我的查詢:

/* Create the prepared statement */ 
if ($stmt = $mysqli->prepare("SELECT categories.category AS category, 
            items.id, 
            items.name, 
            items.description 
           FROM items 
           INNER JOIN categories 
            ON categories.cat_id = items.cat_id 
           WHERE items.id='$id'")) { 

    /* Execute the prepared Statement */ 
    $stmt->execute(); 

    /* Bind results to variables */ 
    $stmt->bind_result($id,$category,$name,$description); 

    /* fetch values */ 
    while ($rows = $stmt->fetch()) { 
     ... 
    } 
... 
} 

出用於放類別名稱:

<?php 
echo $category; 
?> 

可能是什麼在這裏失蹤?

回答

0

這是我的元素,但沒有人回答,所以我想我會拍。

是不是因爲你選擇在查詢中...類別,身份證3項,說明

然後當你綁定要綁定4個變量... $ ID,$類,$名稱, $描述

因此,也許正在發生的事情是$ id變量實際上是類,類$實際上是id(這是你看到的)

0

您似乎從3個項目(從您的選擇)提取到4個變量,我不認爲這是好的。

1

你的綁定順序是錯誤的,它應該是:

$stmt->bind_result($category, $id, $name, $description); 

您在SELECT子句事項順序,所以bind_result可以計算出至極柱結合至極變量。

+0

謝謝奧古斯丁,它的工作。 – 2013-03-26 17:03:59