пейджинг с php?

привет, я хочу перечислить содержимое как 10 содержимого на странице

это исходный код для каждого контента

<?
while ($arama=mysql_fetch_array($arama_sonuc)) {    
?>
<h4><a href="oku.php?id=<?=$arama[id]?>"><?=$arama[baslik]?></a></h4>
                    <div class="article box">
                        <div class="article-desc-oku">

                            <p class="info">Yayınlanma: <strong><?=$arama[eklemetarihi]?></strong><br />
                            Yazan:  <strong><a href="#">Ronnie C. Lynwood</a></strong><br /><?=$arama[tiklanma]?> kez okunmuş.<br />
                            <?php rating_form("$arama[id]"); ?>
                            </p>

                        </div>
                  <?=$arama[spot]?>
                    </div> <!-- /article -->

person Ali Demirci    schedule 22.01.2010    source источник
comment
Прежде всего, проверьте свой код на цитирование ключей массива, потому что $arama[baslik] и $arama['baslik'] разные. $arama[baslik] пытается найти константу с именем baslik, поэтому она никогда не получит $arama['baslik'].   -  person Alex    schedule 22.01.2010


Ответы (5)


Я думаю, вам лучше использовать класс пейджинга, а не создавать свой собственный. Это также сэкономит вам много времени в следующих проектах. Ваша текущая проблема также будет решена. Проверьте это.

Место загрузки

person Sarfraz    schedule 22.01.2010
comment
@Sarfraz Ahmed: Нет ссылки для скачивания. @Sohnee: не хочешь поделиться с нами? - person MoeAmine; 22.01.2010
comment
@amindzx: пожалуйста, проверьте это, это здесь: php-paging-class.googlecode. com/svn/trunk - person Sarfraz; 22.01.2010

Похоже, вы используете MySQL: вы можете создать запрос с помощью команды SQL LIMIT.

Например:

SELECT * FROM myTable LIMIT 5, 10

Укажет MySQL вернуть только первые десять элементов после 5-й строки. Вы можете использовать параметр в строке запроса, чтобы построить соответствующий SQL-запрос, чтобы «спросить» базу данных, какую «страницу» вы хотите увидеть.

person Community    schedule 22.01.2010

Здесь http://php.about.com/od/phpwithmysql/ss/php_pagination.htm, вы можете найти полный пример кода в разбиении на страницы. Это также очень хорошо объяснено.

Извините, но я не могу предложить больше, просто увидев фрагмент кода...

person Flatlin3    schedule 22.01.2010

я использовал коды ниже, чтобы сделать разбиение на страницы

<?
if (isset($_GET['sayfa'])) {
   $pageno = $_GET['sayfa'];
} else {
   $pageno = 1;
} // if
$query = mysql_query("SELECT count(id) FROM yazilar");
$query_data = mysql_fetch_row($query);
$numrows = $query_data[0];
$rows_per_page = 10;
$lastpage      = ceil($numrows/$rows_per_page);
$pageno = (int)$pageno;
if ($pageno > $lastpage) {
   $pageno = $lastpage;
} // if
if ($pageno < 1) {
   $pageno = 1;
} // if
$limit = 'ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
$query = mysql_query("SELECT * FROM yazilar $limit");
if ($pageno == 1) {
   echo " İLK ÖNCEKİ ";
} else {
   echo " <a href='{$_SERVER['PHP_SELF']}?sayfa=1'>İLK</a> ";
   $prevpage = $pageno-1;
   echo " <a href='{$_SERVER['PHP_SELF']}?sayfa=$prevpage'>ÖNCEKİ</a> ";
} // if
echo " ( Sayfa $pageno ) ";
if ($pageno == $lastpage) {
   echo " SONRAKİ SON ";
} else {
   $nextpage = $pageno+1;
   echo " <a href='{$_SERVER['PHP_SELF']}?sayfa=$nextpage'>İLERİ</a> ";
   echo " <a href='{$_SERVER['PHP_SELF']}?sayfa=$lastpage'>SON</a> ";
} // if
?>
person Ali Demirci    schedule 22.01.2010

Позвольте мне предложить некоторые существующие решения PHP

Zend_Paginator, слабосвязанный, может использоваться отдельно без всего фреймворка.

Если вы хотите создать свой собственный вариант, я рекомендую использовать SPL и Классы итераторов.

person Elzo Valugi    schedule 22.01.2010
comment
Можете ли вы добавить немного больше о части SPL? Может быть, какой-нибудь пример кода о том, как использовать SPL для пейджинга. Спасибо - person AntonioCS; 22.01.2010
comment
countable - это интерфейс, а не класс - person AntonioCS; 22.01.2010
comment
Основная идея состоит в том, чтобы заполнить итератор тем, что вы хотите, а затем использовать LimitIterator только для итерации по той «странице», которую вы хотите. Например. $it = new DirectoryIterator('.'); $page = new LimitIterator($it, $offset, $perpage); foreach ($page as $row) { /*...*/ } (P.S. Я не знаю, будет ли приведенный выше код отображаться правильно, все еще привыкаю к ​​SO.) - person salathe; 25.01.2010