2013-07-19 56 views
1

我試圖使一個MySQL選擇用於mysql_query功能的使用,但我不斷收到此錯誤:你的SQL語法有錯誤。 MySQL的Selectgiving誤差與LIKE和

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN Orgs ON Jobs.CustOrgID = Orgs.ID 
      LEFT JOIN Persons ON Jobs.CustPer' at line 11 

我已經竭盡所能,併到處搜尋,但似乎沒有任何正在工作。所有的幫助表示讚賞。

$Qry = "SELECT 

    Jobs.ID, 
    'Jobs.Status', 
    Jobs.JobNum, 
    'Orgs.Nme', 
    'Persons.FirstNme', 
    'Persons.LastNme', 
    'JobTypes.JobType', 
    'Jobs.Dsc', 
    'Jobs.Notes' 
    FROM Jobs "; 

    if($column !== null && $text !== null) { 
     $Qry .= "WHERE " . $column . " LIKE '%" . $text . "%' "; 
    } 

    $Qry .= "LEFT JOIN Orgs ON Jobs.CustOrgID = Orgs.ID 
     LEFT JOIN Persons ON Jobs.CustPersonID = Persons.ID 
     LEFT JOIN JobTypes ON Jobs.JobTypeID = JobTypes.ID 
     ORDER BY JobNum"; 

SOLUTION:

 SELECT ... 
    FROM ... 
    LEFT JOIN ... 
    LEFT JOIN ... 
    WHERE ... 
    ORDER BY ... 

我的WHERE是在錯誤的地方,它應是左側的兩個JOINS後。

+1

WHERE應該在JOIN之後和ORDER BY之前。 – andrewsi

回答

5

你將在錯誤的地方在哪裏。它必須在連接後出現:

SELECT ... 
FROM ... 
LEFT JOIN ... 
LEFT JOIN ... 
WHERE ... 
ORDER BY ... 
+0

正確的答案,+1。 –

+1

當然,就像@echo_me下面說的那樣,引用也是不正確的。 OP將修復哪些東西,並最終導致更多的錯誤。 –

+0

好的,現在好像工作的很好。謝謝。 – Rjdlee

3

您應該使用反引號代替單引號,或者如果它們不是保留關鍵字或分隔字符串,則不必使用反引號。

試試這個:

 $Qry = "SELECT 

`Jobs`.`ID`, 
`Jobs`.`Status`, 
`Jobs`.`JobNum`, 
`Orgs`.`Nme`, 
`Persons`.`FirstNme`, 
`Persons`.`LastNme`, 
`JobTypes`.`JobType`, 
`Jobs`.`Dsc`, 
`Jobs`.`Notes` 
FROM Jobs "; 
+0

你已經回答了未經反應的下一個問題:](無論如何,因爲它幾乎與第一個錯誤一樣重要) – AD7six

+0

當然如Marc所說,你讓WHERE在錯誤的地方 –

+1

@ AD7six我知道我已經提到過它。只是因爲他使用單引號,所以我說,而不是你應該使用反引號。 –