2015-09-04 128 views
0

我遇到了一個PHP項目遇到了問題。更具體地說,MYSQL數據庫困擾着我。這裏是整個事情的想法:(MYSQL)選擇具有特定參數的最後一行

  • 我做了一個數據庫已經有3個表 - T1,T2,日誌。 T1存儲僱主的姓名和代碼; T1存儲工人的姓名和代碼; 日誌存儲ID(自動遞增),僱主名稱,工人姓名,開始日期和結束日期(工作)。

  • 我做了一個有兩個字段的表單 - 僱主代碼和工人代碼。 我的PHP代碼檢查字段中的代碼輸入(檢查它們是否爲空,然後檢查它們是否與T1和T2中的信息匹配)。然後使用提交按鈕發送所有數據並存儲到日誌表中。 但我必須在那裏添加兩個單選按鈕:一個用於工人開始時間,另一個用於結束時間。當按下「開始」單選按鈕時,sql請求會執行以下操作 - 插入僱主名稱,工作人員姓名並啓動開始日期。這部分在這裏工作完美無瑕。 「我的結束日期」列設置爲在更新後放置當前日期。

如果按下結束單選按鈕,我想以下情況發生:找到最後一行,在EMP和工人表單名稱選擇(他們輸入的形式,檢查代碼和實際名稱被存儲爲變量)。那麼,有可能使類似:

SELECT ID FROM Log ORDER BY ID DESC LIMIT 1 
WHERE Worker_Name='$nameW' and Employer_Name='$nameE' 
  • $ nameW是工人的名字和$ nameE是用人單位的名稱。

我說類似的東西,因爲它給了我一個錯誤在整個WHERE部分和不接受我的查詢..

任何幫助,將不勝感激。提前致謝!

回答

2

您的查詢是不正確你必須把訂單,並在年底的限制部分(即後WHERE條件)。適合自己情況的正確的查詢將是:

SELECT ID FROM Log 
WHERE Worker_Name='$nameW' and Employer_Name='$nameE' ORDER BY ID DESC LIMIT 1 
+0

它會給你的錯誤,而在使用PHP –

+0

偉大的,非常感謝你,找不到任何遍佈在哪裏把這些參數的網頁 –

2

您所查詢的是錯誤的使用它,如下:

SELECT `ID` FROM `Log` 
WHERE `Worker_Name`='{$nameW}' and `Employer_Name`='{$nameE}' 
ORDER BY `ID` DESC LIMIT 1