2013-10-24 4 views
-1

У меня проблема, я пытаюсь сделать некоторую разбивку на страницы для моего кода здесь, но у меня возникают проблемы, независимо от того, что я делаю, похоже, я не могу заставить ее работать и, если возможно, аналогично этому примеру 1, но никогда не получили его работы:/Pagination of SQL output

example1:

$page = (int)$_GET['page']; 
$perpage = 5; 
if ($page<1) $page = 0; 

MyCode

<?php 

echo '<div id="block" border="1" width="200" style="float:center">'; 
$i = 0; 
$getquery=mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30"); 
while($rows=mysql_fetch_assoc($getquery)){ 

    $id=$rows['id']; 
    echo '<a href="mypage.com/index.php?img='. $id .'"> 
     <img src="/thumb/'. $id .'.jpg" width="125" height="125" alt="" /> 
    </a>'; 

    $i++; 
    if($i == 10) { 
     echo '<br />'; 
     echo '<br />'; 
     $i = 0; 
    } 
} 
echo '</div>'; 

?> 

ответ

0

это потому, что вы используете предел 30 ... он всегда будет возвращать первый 30 L ines ... Вы должны использовать что-то вроде: LIMIT $ page * $ perpage, $ perpage

Это будет означать, что mysql начнется с X, поэтому $ page * $ perpage и выберите Y строк, $ perpage.

1

Изменение:

mysql_query("SELECT * FROM dogs ORDER by ID LIMIT 30"); 

To:

$start = $page * $perpage; 
mysql_query("SELECT * FROM dogs ORDER by ID LIMIT $start, $perpage "); 
+0

Тем не менее не работает, предел LIMIT 30 только там, когда я хотел се, как это выглядит, когда я тестировал его с pagenation, я удалил его:/ – user2406918

+0

Вы уверены, что переменные $ page и $ perpage обрабатываются правильно? – Taytay

0

Вы должны добавить OFFSET пункт в вашем SQL. Чтобы вычислить его, вы просто сделать

$offset=$pageNumber * $resultsPerPage 

$pageNumber 0 на основе и $resultsPerPage такое же, как значение в LIMIT п