2017-07-30 50 views
-1

以下是我的查詢:在ORDER BY語句中使用PHP變量給出錯誤

$sql = "SELECT date, status, reason 
     FROM tbl_attendance_mgmt ORDER BY date $order 
     LIMIT $number 
     WHERE fk_stu_id = '$stu_id'"; 

這裏:

$order: ASC or DESC 
$number: Number of rows to be displayed. 

是否有人可以幫助我,爲什麼在執行這此查詢給我的錯誤?

+0

你收到哪些錯誤? – Stephan

+0

我不知道錯誤是什麼,但錯誤如下所示:{「readyState」:4,「responseText」:「\ n \ n」,「狀態」:500,「statusText」:「內部服務器錯誤」} –

+1

在這種情況下,讀取PHP的日誌文件或(如果您沒有在生產環境中運行)會啓用PHP來輸出有用的錯誤消息。 – Stephan

回答

0

寫您的查詢這種方式之前WHERE地方:

$sql = "SELECT date, status, reason 
     FROM tbl_attendance_mgmt 
     WHERE fk_stu_id = '{$stu_id}' 
     ORDER BY date $order 
     LIMIT $number "; 

你必須綁定使用大括號{}你的PHP變量

+0

爲什麼downvote? – Lekens

+0

即使這個查詢沒有工作 –

+0

再試一次,我只是重新編輯它 – Lekens

1

您必須有關於sql查詢的後續順序。 ORDER BY子句

$sql = "select `date`, status, reason from tbl_attendance_mgmt where fk_stu_id = '$stu_id' order by `date` $order limit $number"; 
+0

這仍然給我錯誤。 –

+0

沒有,仍然是同樣的事情。 –

+0

你得到哪個錯誤? –

0
$sql = "SELECT date, status, reason 
FROM tbl_attendance_mgmt 
WHERE fk_stu_id = " . mysqli_real_escape_string($con, $stu_id) . " 
ORDER BY date $order 
LIMIT $number "; 
  1. 你應該逃脫您的變量
  2. 查詢應按以下順序排列:SELECTFROMWHEREORDER BYLIMIT