2013-01-18 48 views
0

每當我試圖在drupal的函數模塊中執行這個sql查詢時,我無法獲得結果,但是當我嘗試在MySQL中執行此操作時,我可以查看結果。我的代碼如下所示:如何獲取連接操作的結果?

function _get_subject_sub_category() { 

    $options = array(); 
    $sql = "SELECT father.Subject_Code, child.Subject_Category 
FROM {subjects} as child 
INNER JOIN {subjects} as father ON (child.Parent_Category = father.Subject_Code 
AND child.Level =2)"; 

    $result = db_query($sql); 
    foreach ($result as $row) { 


    $options[$row->father.Subject_Code] = $row->child.Subject_Category; 

    } 
    return $options; 
    } 

我遇到的錯誤是在命令行$選項[$按行> father.Subject_Code] = $按行> child.Subject_Category;`。

任何幫助將不勝感激。

回答

1

嘗試修改此行:

$options[$row->father.Subject_Code] = $row->child.Subject_Category; 

要這樣:

$options[$row->Subject_Code] = $row->Subject_Category; 

表的名稱不是結果。如果您需要避免混淆,可以在SQL查詢中使用別名。

+0

是的我刪除了,雖然沒有出現錯誤,但代碼無法獲取主題代碼和主題類別。 –

+0

您可以使用print_r($ row);或者如果你已經安裝並啓用了devel模塊,你可以使用dsm($ row,'row');並查看您的行內容 – m4t1t0

1

我不知道Drupal和不使用PHP,但我會說:

$row->child.Subject_Category

刪除 father.$row->father.Subject_Code

child.作爲父親,孩子只是數據庫別名。

+0

感謝您的建議,是的,我刪除了,雖然沒有出現錯誤,但代碼無法獲取主題代碼和主題類別,不同的代碼可以獲取MySQL中的信息我不知道出了什麼問題。 –

相關問題