Странициране само с next и prev бутон

confiscate

Registered
Здравейте ,

Използвам това странициране, искам да го модифицирам да не се появяват страници, а само next и prev бутони. Бихте ли ми помогнали ?

Код:
 $page = (int) $_GET['page'];
    if ($page == 0 || $page == NULL || $page < 0) {
        $page = 1;
    }
    $pp = 3;
    $start = ($page * $pp) - $pp;
    $get =mysqli_query($db,"SELECT ... FROM `....` ORDER BY id DESC");
    $broi = mysqli_num_rows($get);
    $total = ceil($broi / $pp);
    if ($page > 1) {
        $z = $page - 1;
    } else {
        $z = 1;
    }
    if ($page < $total) {
        $p = $page + 1;
    } else {
        $p = $total;
    }
    $get = mysqli_query($db,"SELECT ... FROM `...` ORDER BY id DESC LIMIT $start , $pp");
    while ($row = mysqli_fetch_array($get)) {
        echo '<div class="Comments_Box" id="Comments">
                            .....
                        </div>';
    }
    if ($total > 1) {
        echo'
        <div id="Str">
            <ul>';
        if ($page > 1) {
            echo'
                <li><a href = "?page=1#Comments">‹‹</a></li>
                <li><a href = "?page=' . $z . '#Comments">' . $z . '</a></li>';
        }
        echo'<li>' . $page . '</li>';
        if ($page < $total) {
            echo '
                <li><a href = "?page=' . $p . '#Comments">' . $p . '</a></li>
                <li><a href = "?page=' . $total . '#Comments">››</a></li>';
        }
        echo'
            </ul>
            </div>';
    }
}

Сега излиза по следния начин:
Код:
12››

А аз искам да излиза така:
Код:
 <---      ----->

Благодаря предварително за помощта!
Поздрави!
 
Най-лесният варян за който се сещам е този, като задължително си настрой заявката във функцията.
PHP:
function pageExists($page){
	$result = mysqli_query($db,"SELECT ... FROM `...` WHERE ...= '{$page}'");
	return mysqli_num_rows($result)? true : false;
	
}

$page = (int) $_GET['page']; 
$next = $page+1; 
$prev = $page-1; 
if(pageExists($prev)){
	echo '<li><a href = "?page='.$prev.'#Comments">PREV</a></li>';
}
if(pageExists($next)){
	echo '<li><a href = "?page='.$next.'#Comments">NEXT</a></li>';
}
 
Иначеее ако ти се мааалко повече усложняват нещата и тоест искаш да направиш проверка и да извадиш минималното и максималното id (защото може да имаж изтрити такива от базовото id става така):

PHP:
function pageExists($page){
	$next = mysqli_query($db,"SELECT ... FROM `...` WHERE id > '{$page}' ORDER BY id LIMIT 1");
	$prev = mysqli_query($db,"SELECT ... FROM `...` WHERE id < '{$page}' ORDER BY id DESC LIMIT 1");
	return array($prev,$next);
	
}

$pageID = (int) $_GET['page']; 
list($prev,$next) = pageExists($pageID);
if(isSet($prev)){
	echo '<li><a href = "?page='.$prev.'#Comments">PREV</a></li>';
}
if(isSet($next)){
	echo '<li><a href = "?page='.$next.'#Comments">NEXT</a></li>';
}

Само като примерни заявки може да ползваш и SQL от този тип:


next:

select * from foo where id = (select min(id) from foo where id > 4)

previous:

select * from foo where id = (select max(id) from foo where id < 4)

иии врътки бол :)
 
Ще е нахално ли ако те помоля , да го вградиш в моя код , защото аз не съм много навътре в нещата и затова от години си използвам това странициране, което предоставих, тъй като си го разбирам най-добре, но просто сега ми се наложи да го промена малко за лични цели. Ще съм ти много благодарен. :)
 
confiscate каза:
Ще е нахално ли ако те помоля , да го вградиш в моя код , защото аз не съм много навътре в нещата и затова от години си използвам това странициране, което предоставих, тъй като си го разбирам най-добре, но просто сега ми се наложи да го промена малко за лични цели. Ще съм ти много благодарен. :)
Секунда да разгледам само :)
 
Използвах вторият ми пост но не пречи и първият да ползваш като си настроиш естествено заявките и най-вече провериш дали ще сработи.

PHP:
$page = (int) $_GET['page'];
    if (empty($page) or !isSet($page)) {
        $page = 1;
    }
    $pp = 3;
    $start = ($page * $pp) - $pp;
    $get = mysqli_query($db,"SELECT ... FROM `...` ORDER BY id DESC LIMIT $start , $pp");
    while ($row = mysqli_fetch_array($get)) {
        echo '<div class="Comments_Box" id="Comments">
                            .....
                        </div>';
    }
	//Задължително над функцията трябва да имаш логната конекция към базата.
    function pageExists($page){
        $next = mysqli_query($db,"SELECT ... FROM `...` WHERE id > '{$page}' ORDER BY id LIMIT 1");
        $prev = mysqli_query($db,"SELECT ... FROM `...` WHERE id < '{$page}' ORDER BY id DESC LIMIT 1");
        return array($prev,$next);
        
	}
	list($prev,$next) = pageExists($page);

	  echo'
        <div id="Str">
            <ul>';
        if(isSet($prev)){
            echo'<li><a href = "?page='.$prev.'#Comments">'.$prev.'</a></li>';
        }
        echo'<li>' . $page . '</li>';
		if(isSet($next)){
            echo'<li><a href = "?page='.$next.'#Comments">'.$next.'</a></li>';
        }
        echo'
            </ul>
            </div>';
 

Back
Горе