2011-07-14 42 views
1

我有以下幾點:如何從MySQL Query(多級數組)中獲取變量?

$sql = "SELECT c.category_name 
     , c.category_name_url 
    FROM blog_categories AS c 
     JOIN blog_articles AS a 
     ON a.category_name = c.category_name 
    WHERE c.category_status = 'online' 
    GROUP BY c.category_name 
    "; 

$result = mysql_query($query) or die(mysql_error()); 

while($row = mysql_fetch_array($result)) { 

$category_name = $row['c']['category_name']; 
$category_name_url = $row['c']['category_name_url']; 

} 

但它不工作(產生空白)。我確信我做錯了什麼,但我不知道我正在尋找什麼的正式條款,所以谷歌沒有幫助= /。

+0

http://www.php.net/manual/en/function.mysql-fetch-array.php – Sinan

+0

你爲什麼要參加在blog_articles - 它並不像你正在使用它呢? –

回答

3

代碼未運行,因爲您的dint爲mysql_fetch_array提供了有效資源。 $行也將是一個單維數組。

$sql = mysql_query("SELECT c.category_name 
    , c.category_name_url 
FROM blog_categories AS c 
    JOIN blog_articles AS a 
    ON a.category_name = c.category_name 
WHERE c.category_status = 'online' 
GROUP BY c.category_name 
"); 

while($row = mysql_fetch_array($sql)) { 

$category_name = $row['category_name']; 
$category_name_url = $row['category_name_url']; 

} 
0

您應該在您的$ sql(sql查詢)上調用mysql_query,然後調用mysql_fetch_array再次調用該結果。無論如何,你幾乎總是應該調用mysql_error來檢查錯誤。

+0

啊,其實我確實這麼做了(我只是沒有在那裏添加那行) - 編輯澄清:) – Jay

1
$category_name = $row['category_name']; 

那麼,我投票支持PDO,但我敢肯定你可以跳過'c',因爲$ row會引用fieldname。 c僅由DBMS評估以將該字段與propper表相關聯。

+0

也可以使用'mysql_fetch_array()'來使用索引。例如:category_name爲'$ row [0]',category_name_url爲'$ row [1]' – Sinan