Проблема с LIMIT в MySql

12
Segey
На сайте с 23.08.2005
Offline
404
1117

Вобщем такая проблема, делаю запрос:


$from =0;
$num_per_page =18;

SELECT id, title FROM base WHERE name='$a[0]' ORDER BY title LIMIT $from,$num_per_page

В итоге получаю первый 17(!) записей :confused: Почему 17?

На второй странице опять получаю на ожну запись меньше, что это такое?

В мануале ясно написано:

http://www.mysql.ru/docs/man/SELECT.html

При этом смещение начальной строки равно 0 (не 1):

SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

Значит я должен получить с 0 по 17 запись т.е. 18 штук, почему не получаю последнюю? :confused:

С переменными ок, пробовал цифры подсталять.

Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
AM
На сайте с 04.11.2003
Offline
57
#1

Segey, отображается ли недостающая строка на следующей странице вывода. Каким образом организован вывод строк? Может там "засада"?

Segey
На сайте с 23.08.2005
Offline
404
#2

Arty.M,

Нет, на следующей нет.

Вот:

$i = 1+$from;

while ($main_array = mysql_fetch_row($main_iquery)) {
echo "$i. <a class='article' href='$main_array[0].html'>$main_array[1]</a><br>";
$i = $i + 1;
};

Вроде верно, обработали первый -> выдали и так пока он верный выдаем....

B
На сайте с 28.08.2006
Offline
0
#3

$i = $from;

AM
На сайте с 04.11.2003
Offline
57
#4

Segey, единственное что могу предположить - не переопределяются где-либо в коде переменные?

Приведенный код рабочий на 100%.

ps: вывод, например, по 16, 20 строк также "работает"?

dkameleon
На сайте с 09.12.2005
Offline
386
#5
Segey:
WHERE name='$a[0]'

Попробуйте убрать это условие.

Что оно вообще ограничивает? Можно более полный код?

А так же неплохо бы часть базы :)

Дизайн интерьера (http://balabukha.com/)
Segey
На сайте с 23.08.2005
Offline
404
#6
Arty.M:
ps: вывод, например, по 16, 20 строк также "работает"?

Да так же.

dkameleon,

Оно ограничивает категорию в которой нужно выводить. Убирал условие, также выводит по 17 от начала таблицы... Это я так никадал, чтобы за файлом не лезть.

<?php

include("../work/baza1.php");
$translit = addslashes($translit);
$category_inquery = mysql_query ("SELECT id, category_name, size, meta_description, meta_keywords FROM first_category WHERE translit='$translit';");
$category_array = mysql_fetch_row($category_inquery);
$num_page = $category_array[2]/$num_per_page;

if (empty($page)) {$page = 1; $from = 0;} else {if(is_numeric($page)){$from = $num_per_page*$page-$num_per_page;}}

$main_iquery = mysql_query ("SELECT id, title FROM disease_base WHERE category_id='$category_array[0]' ORDER BY title LIMIT $from,$num_per_page");

$main_array = mysql_fetch_row($main_iquery);
?>
<title>Статьи » <?=$category_array[1]?></title>
<meta name="keywords" Content="<?=$category_array[4]?>">
<meta name="description" content="<?=$category_array[3]?>">
<?php
include("../work/top.php");
include("../work/left_menu.php");
include("../work/right_menu.php");
echo "<h1>$category_array[1]</h1>";


$i = 1+$from;
while ($main_array = mysql_fetch_row($main_iquery)) {
echo "$i. <a class='article' href='article$main_array[0].html'>$main_array[1]</a><br>";
$i++;
};

echo "<br />";
if($num_page > 1){
For ($j=1; $j < ($num_page+1); $j++) {
if ($j==$page) {
echo '<b> '.$j.' </b>';
} else {
echo ' <a class="page" href="page'.$j.'.html">'.$j.'</a> ';
}}}

include("../work/footer.php");
?>


id | int(11) | Да | NULL | auto_increment

Это параметры id.

Poster
На сайте с 12.02.2006
Offline
24
#7

$check = mysql_num_rows($main_iquery);
парсер новостей (http://wp-import.com/) для Вашего сайта, постинг в каталоги (/ru/forum/61001) статей
Segey
На сайте с 23.08.2005
Offline
404
#8

Poster,

18 говорит :(

AM
На сайте с 04.11.2003
Offline
57
#9

Segey,

$main_array = mysql_fetch_row($main_iquery);

сразу после запроса - лишний

Segey
На сайте с 23.08.2005
Offline
404
#10

Arty.M,

Он не лишний он о категории запрашивает данные, сколько в ней записей и как она называется, транслит и т.п.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий