2013-08-06 125 views
0

我創建了一個在phpMyAdmin中完美工作的查詢,但是當我嘗試在.php文件中調用該查詢時,出現以下錯誤。加入同一表的查詢3次

Undefined variable: mothers_name in C:\wamp\www\Family_Tree\showfamily.php on line 56 

我的代碼是:

$select_query = "SELECT a.id, CONCAT(a.surname, ', ', a.first_names) AS child_name, " . 
"CONCAT(b.surname, ', ', b.first_names) AS mothers_name, " . 
"CONCAT(c.surname, ', ', c.first_names) AS fathers_name " . 
"FROM family_members a " . 
"INNER JOIN family_members b ON a.mother_id = b.id " . 
"INNER JOIN family_members c ON a.father_id = c.id" . 
"WHERE a.id = " . $user_id; 

我會收到這個錯誤,因爲表 「A」, 「B」 和 「C」 和字段 「mother_id」 和 「father_id」 不直到通過mysql_query($ select_query)函數調用SQL。

第56行之前的代碼查找,返回並顯示結果。

回答

0
..._id = c.id" .    // <-- you forgot a space, results in c.idWHERE 
"WHERE a.id = " . $user_id; 
0

如果你從java樣式行中退後一步,然後攻擊它,可能會更容易。 PHP不需要將其分開,而多餘的標點符號更容易出錯。

$select_query = 
"SELECT 
    a.id, 
    CONCAT(a.surname, ', ', a.first_names) AS child_name, 
    CONCAT(b.surname, ', ', b.first_names) AS mothers_name, 
    CONCAT(c.surname, ', ', c.first_names) AS fathers_name 
FROM family_members a 
INNER JOIN family_members b ON a.mother_id = b.id 
INNER JOIN family_members c ON a.father_id = c.id 
WHERE a.id = " . $user_id; 

這將讓你使用的非常方便的調試工具:

echo "[pre]" . $query . "[/pre]"; 

隨着[&]實際上是< &>。對不起,新來的SO。

然後,您將能夠將您的瀏覽器窗口中的實際查詢複製/粘貼到phpMyAdmin中,然後運行該查詢並查看它們是否完全相同。