2015-05-17 2 views
0

Я новичок в разбивке на страницы и хочу отобразить 10 тем на страницу view_category.php.PHP pagination after concatonation

На index.php есть ссылки на каждой категории, что приводит к category.php? Чид = 1 (или любой другой категории (ИДС) номер).

Как я могу отображать 10 тем на страницу под каждым cid?

Это код, который я экспериментировал с до сих пор:

<?php 
include('connect.php'); // Connects to the DB 

if(isset($_GET['page'])) 
{ 
    $page = $_GET['page']; 
    $page = mysql_real_escape_string($page); 
} else { 
    $page = 1; 
} 
$cid = $_GET['cid']; 
$result = mysql_query("SELECT * FROM topics"); 
$rows = mysql_num_rows($result); 

$per_page = 5; 

$total_pages = ceil($rows/$per_page); 

echo "You are on page $page of $total_pages<br>"; 

if($page !=1) 
{ 
    echo "<a href='view_catagory.php?cid=".$cid."?page=1'>First</a> "." "; 
    $previous = $page-1; 
    echo "<a href='view_catagory.php?cid=".$cid."?page=$previous'>Previous</a> "." "; 
} 

if(($page != 1) && ($page != $total_pages)) 
echo " | "; 

if ($page != $total_pages) 
{ 
    $next = $page+1; 
    echo "<view_catagory.php?cid=".$cid."?=$next'>First</a> "." "; 
    echo "<view_catagory.php?cid=".$cid."?=$total_pages'>Last</a> "." "; 
} 
echo "<hr />"; 

?> 

.. это как категории объединяются в index.php (все работает нормально, не зная, если мне нужно сделать что-нибудь здесь.):

<?php 
    $sql = "SELECT * FROM categories ORDER BY category_title ASC"; 
    $res = mysql_query($sql) or die(mysql_error()); 
    $categories = ""; 
    if (mysql_num_rows($res) > 0){ 
     while ($row = mysql_fetch_assoc($res)){ 
      $id = $row['id']; 
      $title = $row['category_title']; 
      $description = $row['category_description']; 
    $categories .="<center><a href='view_catagory.php?cid=".$id."' class='cat_links'>".$title." - <font size'-1>".$description."</font></a></center>"; 
     } 
     echo $categories; 
    } else { 
    echo "There are no categories."; 
    } 
    ?> 
+0

Что происходит с текущим кодом? – chris85

+0

Он загружает 6 тем, хотя он просит загрузить 5 на одной странице, но отображает «Вы находитесь на странице 1 из 2», lol. Номер страницы также не указывается в URL-адресе, работает только cid. –

ответ

1

Этот вопрос должен быть опубликован под SQL, так как это проблема. Вы должны указать смещение и предел набора результатов в запросе. Каждый раз, когда вы выбираете весь набор. Добавить что-то такое, как

$page_number = isset($_GET['page']) ? $_GET['page'] : 1; 
    $offset = 10 * ($page - 1); 
    $sql = "SELECT * FROM categories ORDER BY category_title ASC LIMIT $offset, 10"; 

Все, что сказал, вы используете старые функции MySQL, которые больше не доступны в новой версии PHP. Вы должны изучить использование объектов mysqli или pdo, если у вас есть опыт ООП. Если вы этого не сделаете, вы захотите посмотреть на замену функций mysql (например, mysql_real_escape_string, mysql_query) на их сопоставления mysqli.

Кроме того, вам не хватает имени параметра «страница» в следующей и последней ссылке в вашем первом блоке кода.