2011-12-24 2 views
0

Я хочу сделать минималистичный скрипт постраничного, который в основном делает три вещи:PHP Разбивка - возникли проблемы обнаружения страницы

  1. На первой странице, просто следующая кнопку.
  2. На последней странице, только предыдущая кнопка.
  3. Для всех остальных между ними.

У меня есть большая часть кода, но я просто делаю некоторые инструкции if/elseif, которые определяют, на какой странице находится пользователь, и у меня проблемы. (Те, в нижней части) Во-первых, здесь нет код запроса:

$per_page = 10; 
$pages_query = mysql_query("SELECT COUNT(idnum) FROM images"); 
$pages = ceil(mysql_result($pages_query, 0)/$per_page); 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] :1; 
$start = ($page -1) * $per_page; 

$query = mysql_query("SELECT * FROM images ORDER BY idnum DESC LIMIT $start, $per_page"); 

А вот если заявление часть:

$nextend = $pages - 1; 
$next = $page + 1; 
$previous = $page - 1; 

if ($pages >= 1 && $page = 1) { 
    echo '<a href="?page='.$next.'">next</a>'; 
} elseif ($pages >= 1 && $page = 2) { 
    echo '<a href="?page='.$previous.'">previous</a>'; 
} 

Это всегда приводит к следующей кнопке, независимо от того, на какой странице я на. Как определить номер страницы, чтобы я мог отображать кнопки разбиения на страницы так, как я хочу? Кстати, я знаю, что у меня уже нет инструкции else для средних страниц (следующий и предыдущий).

ответ

4

Вы назначаете в своих операторах if вместо сравнения. Вы не хотите это в своем заявлении, если:

$page = 1 

Это просто присваивает 1 к $page.

Вы хотите:

$page == 1 

Или это:

$page === 1 
+0

Работает идеально. Благодаря! –

0
$nextend = $pages - 1; 
$next = $page + 1; 
$previous = $page - 1; 
$maxpages = ? //You need to have a variable with the last page number 

if ($pages > 1) { 
    echo '<a href="?page='.$previous.'">previous</a>'; 
} 
if ($page < $maxpages) { 
    echo '<a href="?page='.$next.'">next</a>'; 
} 

Я не понимаю, что логика вы пытаетесь сделать с вашими, если/иначе, также при проверке если переменная равна числу/другой переменной, ваш «==» не «=»

0

Что вам нужно сделать, так это просто:

  1. Если вы не на первой странице, вам всегда нужно отобразить кнопку возврата.
  2. Если вы не на последней странице, вам всегда нужно отобразить следующую кнопку.

Обратите внимание, что оба этих условия могут происходить одновременно, поэтому использование elseif между ними не будет работать, поскольку это позволит только одному из них выполнить.

Пример:

if ($page > 1) 
{ 
    echo("Previous"); 
} 

if ($page < $pages) 
{ 
    echo("Next"); 
} 
Смежные вопросы