Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zaawansowane dzielenie na strony :|
menic
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Weim co sobiwe pomyśleliście po temacie...
Że to już było itp. Ale szukałem i nie znalazłem niczego co by mo pomogło :|
Chodzi o podzielenie wyników z sql'a na strony.
Chwilowo mam taki kod
[php:1:ff75c7c234]<?php
for($i=0;$i<ceil($any_topic/$tpp);$i++)
{
if($p == $i * $tpp)
{
echo '<b>'.($i+1).'</b>, ';
}
else
{
echo '<a href="'.$PHP_SELF.'?f='.$f.'&p='.($i*$tpp).'&sort='.$sort.'&order='.$order.'">'.($i+1).'</a>, ';
}
}

?>[/php:1:ff75c7c234]
gdzie $tpp to ilośc wyników po ile ma dzielić
$any_topic liczba wszystkich wyników.
Wszystko działa ale jeżeli jest niewielka ilośc wyników. W przeciwnym razie wyświetla wszystko.
Do czego zmierzam. Chciałbym aby wyświetlało jakoś przyjemniej czyli np. tak jak jest w phpBB (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Albo coś podobnego
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
e-Gandalf
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

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


[php:1:75f5eff9a1]<?php

$page = $_GET['page'] ? (int)$_GET['page'] : 0;
$on_page = 10;

$int = 100; // ilosc postow/newsow itp.

$temp = ceil($inc/$on_page);
for ($i=0; $i < $temp; $i++) {
if ($page==$i) {
print(($i+1).' ');
} else {
print('<a href="?page='.$i.'">'.($i+1).'</a> ');
}
}
?>[/php:1:75f5eff9a1]

cos w tym stylu, podaje z glowy wiec moga byc czeskie bledy.
Go to the top of the page
+Quote Post
spenalzo
post
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


W temacie jest zaawansowane więc zademonstruję mój kod, który umożliwia zdefiniowanie ilości produktów na stronę i wraz z comboboxem umożliwającym przeskoczenie do dowolnej strony.

[php:1:ddc7ab00ae]<?php
// Ilosc produktow na strone
$ile_prod=25;

// Sprawdzanie liczby produktów w danej kategorii
$q=mysql_query("SELECT count(ID) FROM produkty WHERE kat='5'");
$ile=@mysql_result($q,0);

if($ile>0)
{
// Jeżeli nie ma numeru strony to nadajemy 0
if(!$p) { $p="0"; }

// Obliczanie ilo&para;ci podstron
$ile_p=($ile/$ile_prod);

// Link do poprzedniej strony
if($p>0)
{
echo "<input type=button value="&lt;&lt;" onClick="document.location.href='produkty.php?id=$id&s=".floor($p-1)."'">";
}


// Combo umozliwiajace przeskoczenie bezposrednio
// do wybranej strony
echo "<form method=GET name=str><input type=hidden name="id" value="$id">";
echo "<select name="p" onChange="document.location.href='produkty.php?id=$id&s='+this.value">";
for($i=0,$nr=1; $i<$ile_p; $i++,$nr++)
{
unset($sel);
if($p==$i)
{
$sel=" selected";
}
echo "<option value="$i"$sel>$nr</a>";
if($i%2) { echo "n"; }
}
echo "</select></form>";

// Link do nastepnej strony
if($p<($ile_p-1))
{
echo "<input type=button value="&gt;&gt;" onClick="document.location.href='produkty.php?id=$id&s=".floor($p+1)."'">";
}
}
else
{
echo "Brak produktów w danej kategorii";
}
?>[/php:1:ddc7ab00ae]
Jest to stara wersja, nowa gdiześ wsiąkła :-( a było dokładniejsze sprawdzanie czy jest coś na następnej stronie.
Go to the top of the page
+Quote Post
woocash
post
Post #4





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 5.04.2003
Skąd: Warszawa

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


Cytat
Chodzi o podzielenie wyników z sql'a na strony.

Generalnie jeśli naprawdę chodzi o podzielenie na strony to najłatwiej jest to zrobić z poziomu zapytania SQL i użycie komendy LIMIT
Go to the top of the page
+Quote Post
menic
post
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Tyle to wiem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Ale mi chodzi o wyświetlanie linków do nastepnych stron
Go to the top of the page
+Quote Post
Teodor
post
Post #6





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 13.04.2003
Skąd: Poznan

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


Moze tak:
[php:1:26da6095a4]
<?php
/*
$news_poz - to ile pozycji na strone
$s - to pozycja od ktorej zaczynasz wyswietlanie
*/
$news_poz=10;
if(!$s){
$s="0";
}
$connection = mysql_connect($config["host"],$config["user"],$config["password"]) or
die( db_error() );
$db = mysql_select_db($config["database"],$connection);
$sql = "SELECT* FROM news ORDER BY id
DESC LIMIT $s,$news_poz";
$sql_result = mysql_query($sql,$connection);
list($ile)=mysql_fetch_row(mysql_db_query($config["database"],"SELECT
count(*) FROM news"));
while ($row = mysql_fetch_array($sql_result)) {
/* teraz wyswietlasz to co pobrales z bazy */

}
/* a ponizej generowanie linkow do nastepnych stron */
for($s=0; $s<$ile; $s+=$news_poz) {
$y=($ile-$s)/$news_poz;
$x=ceil($y);
echo"<a href="stronki.php?s=$s">$x</a> "; #to wyswietli linki w postaci 4 3 2 1
}
/* LUB */
for($s=0; $s<$ile; $s+=$news_poz) {
$z=$s/$news_poz+1;
echo"<a href="stronki.php?s=$s">$z</a> "; #to wyswietli linki w postaci 1 2 3 4
}

?>[/php:1:26da6095a4]
Go to the top of the page
+Quote Post
menic
post
Post #7





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Taki kod mnie nie zadowala. A będzie jęzlie tych stron będzie np. 1000?? To co wyświetli mi wszystko po kolei??
Go to the top of the page
+Quote Post
spenalzo
post
Post #8





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
Taki kod mnie nie zadowala.

To napisz sobie sam, jak ci wszystko nie odpowiada!!!! To źle tamto źle a sam nic nie zrobisz.
Go to the top of the page
+Quote Post
menic
post
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Jak byś nie zauważył to już cos napisałem. Potrzeba mi to tylko rozbudować
Go to the top of the page
+Quote Post
scanner
post
Post #10





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Spokój w piaskownicy, bo wiaderka pozabieram!

Skoro masz wyświetlanie wszystkiech stron, to chyba aż tak trudne nie jest zaimplementowanie czegoś co sprawdza najpierw na ktorej stronie jestes (y) i pokazuje te, oraz +x, -x stron.

do tego dokładasz:
Pokazywanie 1 do x
Pokazywanie max-x do max

Jeszcze tylko kontrola czyt sie zakresu nie pokrywaja.. i koniec (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Proste jak budowa snopowiązałki.
Go to the top of the page
+Quote Post
spenalzo
post
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
Jak byś nie zauważył to już cos napisałem. Potrzeba mi to tylko rozbudować

My też. Zobacz sobie linie 24-38 w moim poście.
Go to the top of the page
+Quote Post
Sir Blade
post
Post #12





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 7.06.2002

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


Cytat
Proste jak budowa snopowiązałki.


A o której snopowiązałce mowa (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

O snopowiązałce konnej czy snopowiązałce ciągnikowej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) :wink:
Go to the top of the page
+Quote Post
menic
post
Post #13





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Cytat
Skoro masz wyświetlanie wszystkiech stron, to chyba aż tak trudne nie jest zaimplementowanie czegoś co sprawdza najpierw na ktorej stronie jestes (y) i pokazuje te, oraz +x, -x stron.

do tego dokładasz:
Pokazywanie 1 do x
Pokazywanie max-x do max

Jeszcze tylko kontrola czyt sie zakresu nie pokrywaja.. i koniec (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Próbowalem i trochę nie wychodziło :oops:
Ps. MAm to robić w pętli czy jeszcze przed nią(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
scanner
post
Post #14





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat
Cytat
Proste jak budowa snopowiązałki.
A o której snopowiązałce mowa (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
O snopowiązałce konnej czy snopowiązałce ciągnikowej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Oczywiście że o ciągnikowej z automatycznym systememm odszraniania.
Cytat
Próbowalem i trochę nie wychodziło
Ps. MAm to robić w pętli czy jeszcze przed nią(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Pokaz co robiłeś...
I o jakiej pętli mówisz?
Go to the top of the page
+Quote Post
spenalzo
post
Post #15





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Jak masz już ustalony w jakiś sposób numer strony to zrób tak:
[php:1:5c55af2f8f]<?php
$page=54;
$ile=5; // ile stron w przód i tył
$strony=103; // ilosc wszystkich stron


if(($page-$ile)>0)
{
for($i=0; $i<$ile; $i++)
{
echo "<a href=costam.php?page=".($page-$i).">".($page-$i)."</a>";
}
}

if(($page+$ile)<$strony)
{
for($i=0; $i<$ile; $i++)
{
echo "<a href=costam.php?page=".($page+$i).">".($page+$i)."</a>";
}
}

?>[/php:1:5c55af2f8f]
Go to the top of the page
+Quote Post
menic
post
Post #16





Grupa: Zarejestrowani
Postów: 493
Pomógł: 0
Dołączył: 14.06.2003
Skąd: Tomaszów Lubelski/Rzeszów

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


Cytat
Pokaz co robiłeś...
I o jakiej pętli mówisz?

NA samym początku postu jest mój kodzik. A pętla...
No ta która wyswietla nam cyferki (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
spenalzo
post
Post #17





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Sugeruję aby przykleić gdzieś ten temat, bo pytanie o dzielenie na strony powtarza się.
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: 23.08.2025 - 15:54