Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Dzielenie wartości liczbowych oraz odnośnik "dale
Mappet
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 10.06.2004

Ostrzeżenie: (0%)
-----


Witam

Problem jest pewnie błahy. No ale nie wiem jak sobie poradzić (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Zbłąkany
post
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Mappet
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 10.06.2004

Ostrzeżenie: (0%)
-----


Done (IMG:http://forum.php.pl/style_emoticons/default/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]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 00:08