Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dzielenie wartości liczbowych oraz odnośnik "dale
Forum PHP.pl > Forum > PHP
Mappet
Witam

Problem jest pewnie błahy. No ale nie wiem jak sobie poradzić winksmiley.jpg
Otóż:[php:1:33cbe85d1d]<?
echo ($_GET['intPg'] == 0) ? '&laquo; |' : '<a href="index.php?page=ksiega&pg='. ($_GET['intPg'] - 1) .'" class="white">&laquo;</a> |';//wyświetlanie odnośnika "wstecz"
for($p = 0; $p < ( $intCnt / $intEPP ); $p++) {
echo $p == $_GET['intPg'] ? ' <b><font style="color: #97A5C4">' . ( $p + 1 ) . '</font></b> |' : ' <b><a href="index.php?page=ksiega&pg=' . $p . '" class="white">' . ( $p + 1 ) . '</a></b> |';
}
$intLastPg = $intCnt / $intEPP;
$lastPg = explode(".", $intLastPg);
echo ($_GET['intPg'] == $lastPg[0]) ? ' &raquo;' : ' <a href="index.php?page=ksiega&pg='. ($_GET['intPg'] + 1) .'" class="white">&raquo;</a>';//wyświetlanie znacznika "dalej"

#################
# zmienne:
# $_GET['intPg'] - zmienna pochodząca z linku od stron 1 | 2 | 3....
# $intCnt = 270 (wszystkie linie z pliku *.dat)
# $intEPP = 30 (limit wyświtalania wpisów na stronę)
#################
?>[/php:1:33cbe85d1d]
Teraz problem pojawia się podczas wyświetlania odnośnika ">>" (raquo), dla przykładu podałem liczbę 270 która jest podzielna przez 30. Kod polega na tym że gdy jesteśmy na stronie pierwszej lub ostatniej znacznki kolejno dla strony pierwszej - wstecz oraz dla strony ostatniej - dalej nie są dostępne. Znacznik "<<" (laquo) - wstecz działa dobrze, lecz problemy pojawiają odnośnikiem ">>" (raquo) - dalej. Poniważ wtedy dzieli wartość 270 przez 30 wynik jest 9. I fragment:
[php:1:33cbe85d1d]<?php
$intLastPg = $intCnt / $intEPP;
$lastPg = explode(".", $intLastPg);
echo ($_GET['intPg'] == $lastPg[0]) ? ' &raquo;' : ' <a href="index.php?page=ksiega&pg='. ($_GET['intPg'] + 1) .'" class="white">&raquo;</a>';//wyświetlanie znacznika "dalej"
?>[/php:1:33cbe85d1d]
nie moze tego przetrawić, czyli jesteśmy na ostatniej stronie a odnośnik ">>" jest dalej dostępny czyli prznosi nas na kolejną stronę, której w rzeczywistości nie ma.
Zbłąkany
Sprobuj w ten sposob ze dasz zapytanie if do generowania odnosnikow, np. jesli jest pierwszy to ma dac normalny tekst a jesli ostatni to tez normalny tekst:
[php:1:1c8fb6a8d3]<?php
$liczba_stron="27";
$page=$_GET['page'];
$ilosc="9";
$ilepodstron=ceil($liczba_stron/$ilosc);
//poprzednia
if($page>1){
//tutaj jesli nie jest pierwsza strona
} else {
//tutaj jesli jest pierwsza strona
}
//lista stron
for ($i=1; $i<=$ilepodstr; $i++) {
if ($i==$page){
//tutaj jesli strona jest aktualnie wyswietlana
} else {
//tutaj jesli strona nie jest aktualnie wyswietlana
}
}
//nastepna
if($page<$ilepodstr){
//tutaj jesli nie jest ostatnia strona
} else {
//tutaj jesli jest ostatnia strona
}
?>[/php:1:1c8fb6a8d3]
Zmienna ilosc okresla ilosc wyswietlanych elementow na danej stronie, a zmienna $ilepodstr oblicza ile wychodzic powinno stron do wyswietlenia wynikow dzielac i zaokraglajac w gore 8)
Licze ze zmienisz sobie sam kod do swoich potrzeb(nazwy zmiennych i ich wartosci) bo mi sie nie chce pisac biggrin.gif
Mappet
Done winksmiley.jpg
Dla zainteresowanych kod wygląda następująco[php:1:543c28951d]<?php
$intCnt = count( $arrLines );

$intEPP = 30;
$getPg = $_GET['pg'];

$intFrom = ($getPg - 1) * $intEPP;
$intTo = $intFrom + $intEPP;
if( $intFrom > $intCnt ) $intFrom = $intCnt;
if( $intTo > $intCnt ) $intTo = $intCnt;
echo "<center>";
echo ($getPg > 1) ? '<a href="index.php?page=ksiega&pg='. ($getPg - 1) .'" class="white">&laquo;</a> |' : '&laquo; | ';
$ceil = ceil( $intCnt / $intEPP );
for($p = 1; $p <= $ceil; $p++) {
echo $p == $getPg ? '<b><font style="color: #8E6338">' . $p . '</font></b> | ' : ' <b><a href="index.php?page=ksiega&pg=' . $p . '" class="white">' . ( $p ) . '</a></b> | ';
}
echo ($getPg < $ceil) ? ' <a href="index.php?page=ksiega&pg='. ($getPg + 1) .'" class="white">&raquo;</a>' : ' &raquo;';
echo "</center>";
?>[/php:1:543c28951d]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.