SQL olmadan PHP Dinamik Sayfalandırması

4 Cevap php

Ben dinamik olarak çağırır ve dizinden görüntüler bir komut dosyası, bu ne sayfalandırmamayı en iyi yol olacağını var? Ben komut dosyası içinde bir değişken üzerinden sayfa başına görüntülenen görüntü sayısını kontrol edebilmek istiyorum. Ben URL kullanarak düşünüyorum varriables (yani - http://domain.com/page.php?page=1), ancak bu konuda gitmek nasıl emin değilim.

Yardımlarınız için teşekkürler.

4 Cevap

pagination sql ile veya olmadan aynı kavramdır. Eğer sadece o istediğiniz içerik oluşturabilirsiniz, temel değişkenleri gerekir. Burada bazı yarı-kod:

$itemsPerPage = 5;

$currentPage = isset($_GET['page']) ? $_GET['page'] : 1;
$totalItems = getTotalItems();
$totalPages = ceil($totalItems / $itemsPerPage);

function getTotalItems() {
// since they're images, perhaps we'll scan a directory of images to determine
// how many images we have in total
}

function getItemsFromPage($page, $itemsPerPage) {
// function to grab $itemsPerPage based on which $page we're on
}

function getPager($totalPages, $currentPage) {
// build your pager
}

Bu başlamanıza yardımcı olur umarım!

Bu sık sık sayfalama yapmak için kullanabileceğiniz bir fonksiyondur. Umarım yardımcı olur.

function paginate($page, $total, $per_page) {
	if(!is_numeric($page)) { $page = 1; }
	if(!is_numeric($per_page)) { $per_page = 10; }
	if($page > ceil($total / $per_page)) $page = 1;
	if($page == "" || $page == 0) { 
		$page = 1;
		$start = 0;
		$end = $per_page;
	} else {
		$start = ($page * $per_page) - ($per_page);
		$end = $per_page;
	}

	$prev_page = "";
	$next_page = "";
	$all_pages = array();
	$selected = "";
	$enabled = false;

	if($total > $per_page) {
		$enabled = true;
		$prev = $page - 1;
		$prev_page = ($prev == 0) ? 0 : $prev;

		$next = $page + 1;
		$total_pages = ceil($total/$per_page);

		$next_page = ($next <= $total_pages) ? $next : 0;

		for($x=1;$x<=$total_pages;$x++) {
			$all_pages[] = $x;
			$selected = ($x == $page) ? $x : $selected; 
		}
	}

	return array(
		"per_page" => $per_page,
		"page" => $page,
		"prev_page" => $prev_page,
		"all_pages" => $all_pages,
		"next_page" => $next_page,
		"selected" => $selected,
		"start" => $start,
		"end" => $end,
		"enabled" => $enabled
	);
}

// ex: we are in page 2, we have 50 items, and we're showing 10 per page
print_r(paginate(2, 50, 10));

Bu dönecektir:

Array
(
    [per_page] => 10
    [page] => 2
    [prev_page] => 1
    [all_pages] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
        )
    [next_page] => 3
    [selected] => 2
    [start] => 10
    [end] => 10
    [enabled] => 1
)

Tüm bu veriler ile daha sonra oldukça iyi sayfalama bağlantıları yapmak için silahlı vardır.

Şüphe javascript kullandığınızda! Bu yardımcı olabilir çok: http://www.webplicity.net/flexigrid/

Ben hiç denemedim ama, galeri gibi uygulamalar için iyi olabilir :)

Eğer görüntüleri 01.jpg isim varsa, bu daha kolay paginate yapar 02.jpg. Sonra bir diziye tüm görüntüleri almak ve sıralamak için topak kullanın.