2012-01-11 130 views
0

我試圖限制數據庫輸出,5,但它只能選擇4。是的,我敢肯定有更多然後4MySQL的 - 限制選擇1小於應該

$sql = "SELECT * FROM lookup 
      INNER JOIN lookupCategories 
      ON lookup.FK_lookupCategory=lookupCategories.lookupCategoriesId 
      INNER JOIN lookupType 
      ON lookup.FK_lookupType=lookupType.lookupTypeId 
      INNER JOIN authentication 
      ON lookup.FK_lookupUserId=authentication.userId 
      WHERE FK_lookupUserId='$_GET[id]' 
      ORDER BY lookupId DESC 
      LIMIT 5"; 

我的代碼看起來像這樣。什麼可能是錯的? :) 在此先感謝。

+3

我喜歡你如何使用「裸''$ _GET [id]'在你的SQL中。 – Jakub 2012-01-11 16:29:03

+2

所以你說你從查詢中刪除了「LIMIT 5」,運行了它並獲得了更多的結果,或者你說你檢查了一個有問題的表並且看到了4條以上的記錄? – 2012-01-11 16:29:26

+0

題外話,我會在插入之前清理$ _GET。 – 2012-01-11 16:29:40

回答

6

我的建議是,只有4匹配條目 - 來證明或反駁這一點,試試你的查詢,而不LIMIT,看看有多少返回結果:

"SELECT COUNT(*) FROM lookup 
     INNER JOIN lookupCategories 
      ON lookup.FK_lookupCategory=lookupCategories.lookupCategoriesId 
     INNER JOIN lookupType 
      ON lookup.FK_lookupType=lookupType.lookupTypeId 
     INNER JOIN authentication 
      ON lookup.FK_lookupUserId=authentication.userId 
     WHERE FK_lookupUserId='$_GET[id]'; 
+0

爲了更好的實踐,請替換'$ _GET [id] '至少有一個(int)$ _GET [id] .. – tXK 2012-01-11 16:33:47

+0

@ rich.okelly如果我刪除LIMIT即時獲得10個條目。所以,我想不是那樣。 – skolind 2012-01-11 16:34:57