php ile sayfalama?

5 Cevap php

merhaba ben sayfa başına 10 içindekiler olarak içeriğini listelemek istiyorum

Bu her bir içerik için kaynak kodu

<?
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 -->

5 Cevap

i sayfalama yapmak için aşağıdaki kodları kullanılır

<?
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
?>

Ben daha iyi yerine kendi oluşturarak daha belleği sınıfını kullanmak gerektiğini düşünüyorum. Bu da bir sonraki projelerinde senin çok zaman kazandıracak. Geçerli problem de çözülmüş olacaktır. Check this out.

Download Location

Sen SQL LIMIT komutunu kullanarak bir sorgu oluşturabilirsiniz: MySQL kullanıyorsanız gibi görünüyor.

Örneğin:

SELECT * FROM myTable LIMIT 5, 10

5. satırdan sonra sadece ilk on öğelerini geri MySQL söyleyecektir. Sen görmek istiyorum "sayfa" veritabanı "sormak" için uygun bir SQL sorgusu oluşturmak için sorgu dizesi bir parametre kullanabilirsiniz.

İşte http://php.about.com/od/phpwithmysql/ss/php_pagination.htm Eğer pagination üzerinde tam bir kod örneği bulabilirsiniz. O da çok iyi açıklanmıştır oluyor.

Üzgünüm ama ben bir kod snipped görerek sadece daha fazla teklif edemez ...

Bana bazı mevcut PHP çözüm önereyim

Zend_Paginator, gevşek birleştiğinde tüm çerçeve olmadan yalnız standı kullanılabilir.

Kendi lezzet oluşturmak istiyorsanız ben SPL sayılabilen ve Iterator sınıfları salık.