English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Этот пример рассказывает о простом реализации функции предшествующей и следующей страниц в PHP. Предлагается для обсуждения и использования, подробности см. ниже:
Систематизация идей:
Теперь многие люди используют увеличение и уменьшение значения id для реализации предшествующей и следующей статей, но не закончится ли ID статей? Поэтому вам нужно знать, какие это ID, чтобы было хорошо.
Как решить эту проблему? Это просто!
Пример:
Допустим, у этой статьи ID 200
<a href="?action=up&id=200">Предыдущая статья</a> <a href="?action=down&id=200">Следующая статья</a>
Если нужно реализовать предыдущую статью, напишите функцию на странице action=up
$id= $_GET['id']; //Предыдущая статья: $sql= select * from article where id < '.$id.' order by id desc limit 0,1'; $rs = mysql_query($sql); $row = mysql_fetch_array ($rs); //Следующая статья: $sql= select * from article where id < '.$id.' order by id asc limit 0,1'; $rs = mysql_query($sql); $row = mysql_fetch_array ($rs);
Принцип, выборка данных, меньше текущего ID (where id < '.$id.' предыдущая статья) и больше текущего ID (where id > '.$id.' следующая статья) 1 строка (limit 0,1), и отображение по убыванию (desc, предыдущая статья) и по возрастанию (asc, следующая статья). При выборе одной статьи можно пропустить убывание или возрастание.
Конкретное реализация кода: необходимо передать параметры
В前台 вызывается в разделе "предыдущая статья, следующая статья":
<?php echo GetPreNext(pre,news,$_REQUEST[catid],$_REQUEST[id]);?> // 显示上一篇文章下一篇文章 function GetPreNext($gtype,$table,$catid,$id){ $preR = mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id<$id order by id desc limit 0,1"));//id меньше传入id последняя $nextR = mysql_fetch_array(mysql_query("select * from ".$table." where catid=".$catid." and id>$id order by id asc limit 0,1"));//id больше传入id последняя $next = (is_array($nextR) ? " where id={$nextR['id']} " : ' where 1>2 '); $pre = (is_array($preR) ? " where id={$preR['id']} " : ' where 1>2 '); $query = "Select * from ".$table." "; $nextRow = mysql_query($query.$next); $preRow = mysql_query($query.$pre); if($PreNext = mysql_fetch_array($preRow)) { echo $PreNext['pre'] = "Предыдущая статья: <a href='newsshow.php?id=".$preR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> "; {} else { echo $PreNext['pre'] = "Предыдущая статья: нет "; {} if($PreNext=mysql_fetch_array($nextRow)) { echo $PreNext['next'] = "Следующая статья: <a href='newsshow.php?id=".$nextR['id']."&&catid=".$catid."'>".$PreNext['title']."</a> "; {} else { echo $PreNext['next'] = "Следующая статья: нет "; {} {}
Код протестирован и работает
Читатели, интересующиеся дополнительной информацией о PHP, могут ознакомиться с темами на нашем сайте: «Сборник полезных приемов для работы с базами данных в PHP», «Полное руководство по операциям с массивами (Array) в PHP», «Обзор排序 алгоритмов в PHP», «Обзор алгоритмов и приемов遍вания в PHP», «Руководство по структурам данных и алгоритмам в PHP», «Обзор алгоритмов программирования в PHP», «Обзор математических операций в PHP», «Обзор регулярных выражений в PHP», «Обзор операторов и вычислений в PHP» и «Обзор работы со строками (string) в PHP»
Надеюсь, что это руководство поможет вам в программировании на PHP.
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, контент предоставлен пользователями Интернета в добровольном порядке, сайт не имеет права собственности, не был отредактирован вручную и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите подозрительное нарушение авторских прав, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @) для сообщения о нарушении и предоставьте соответствующие доказательства. При подтверждении факта нарушения сайт незамедлительно удалят涉嫌侵权的内容.