2014-01-08 3 views
0

Привет всем, я хотел бы спросить вас, почему, когда я устанавливаю лимит 0,5 и 5,10, он не работает правильно, вот мой код.LIMIT в php sql не работает

$sql = mysql_query("SELECT * FROM vn_questions WHERE published = 1 limit 0,5 "); 
while($data=mysql_fetch_array($sql)) 
{ 
    echo $data['author']; 
} 

это дает мне 5 результаты, но когда я поставил

$sql = mysql_query("SELECT * FROM vn_questions WHERE published = 1 limit 5,10 "); 
while($data=mysql_fetch_array($sql)) 
{ 
    echo $data['author']; 
} 

это дает мне 6 .. где проблема и как я могу это исправить? Я пробовал +1 -1, но выход не работает правильно.

+2

'5-6-7-8-9-10 = "6"' экземпляров. '0' - нет, тогда вы начинаете считать до 5 = 5 --- Каков ваш ожидаемый результат? –

+0

Если вы не хотите устанавливать лимит, оставьте 'LIMIT' или отпустите первый номер. I.e .: 'LIMIT 10', и это даст вам 10 результатов. О, и комментарий к комментарию, который был «в двух словах» ;-) –

+0

Я думаю, что может быть какая-то путаница, потому что я верю (исправьте меня, если я ошибаюсь), но MSSQL и MYSQL обрабатывают ограничения по-разному. для mysql числа не являются нижней и верхней границей. см. мой ответ ниже о том, как работает ограничение. –

ответ

2

синтаксис для MYSQL LIMIT is LIMIT OFFSET COUNT, так что ваш второй запрос говорит о начале записи 5 и покажите мне 10 результатов. у вашей таблицы всего 6 записей? так как это меньше 10, он будет показывать только те 6 доступных.

Из инструкции SQL

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

И

With one argument, the value specifies the number of rows to return from the beginning of the result set:

+0

, если вы нажали на кнопку "Добавить", чтобы принять это предложение, это будет оценено по достоинству. –

+0

спасибо многому человеку, что я должен сначала проверить Google, но вы мне очень многое помогли;) – user3175393

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