2012-01-11 3 views
0

Я пытаюсь ограничить вывод базы данных с 5, но это только выбор 4. И да, я уверен, что есть более 4.MySQL - LIMIT выбирает 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

+2

Итак, вы говорите, что вы удалили «LIMIT 5» из своего запроса, запустили его, и у вас появилось больше результатов или вы говорите, что вы проверили одну из рассматриваемых таблиц и увидели более 4 записей? –

+0

Вне темы, я бы очистил это $ _GET перед его вставкой. –

ответ

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

+0

@ rich.okelly Если я удалю LIMIT im, получаю 10 записей. Итак, я думаю, это не так. – skolind

Смежные вопросы