Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Stronicowanie-jak w phpBB
FastRed
post 14.02.2004, 17:57:45
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 30.06.2003
Skąd: Chełm

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


Witam.
Mam problem, z którym męczę się już kilka godzin, ale rezultaty są ciągle mierne :/. Potrzebne mi jest stronicowanie wyników(do newsów pobieranych z bazy mysql), takie jak w phpBB, czyli:
1, 2, 3 ... 11, 12, 13 Następny
Poprzedni 1, 2, 3 ... 6, 7, 8 ... 11, 12, 13 Następny

Normalnie stronicowanie:
poprzednia | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | następna
umiem napisać, i jest to dość proste, ale nie mogę dojść jak zrobić, aby w odpowiednim momencie pojawiały się te kropeczki.
Szukałem na phpclasses, i próbowałem pozmieniać kod z phpbb(funkcja generate_pagination z pliku includes/functions.php), ale nic mi nie wychodzi.

Jeśli ktoś wie jak napisać takie coś to proszę o pomoc(najlepiej od razu z przykładem, ponieważ nie bardzo mi dzisiaj idzie myślenie).

BTW. szukałem na forum i znalazłem tylko linka do webcity, który teraz nie działa

mój kod:
[php:1:5c2f3e41f0]<?php
$ile = 7;
$q = mysql_query ('SELECT COUNT(id) AS id FROM blog_notki');
$row = mysql_fetch_array ($q);
$num=$wynik2[id];
$stron = ceil ($num / $ile);

if (!isset ($_GET['page']) || ereg ('[^0-9]', $_GET['page']))
{
$page = 1;
}else{
$page = $_GET['page'];
}
$query = 'SELECT * FROM news ORDER BY id DESC LIMIT '.(($page - 1) * $ile).', '.$ile;
$result = mysql_query ($query) or die(mysql_error());
$news= array();
while ($row=mysql_fetch_assoc($result)) {
$news[] = $row;
}
if ($stron > 1){
if ($page > 1)
$spis .= ('<a href="index.php?page='.($page-1).'">poprzednia</a> | ');
else
$tabela_stron = array ();
for ($i = 1; $i <= $stron; $i++)
$tabela_stron[$i-1] = '<a href="index.php?page='.$i.'">'.$i.'</a>';
$tabela_stron[$page-1] = $page;
$spis .= (join (' | ', $tabela_stron));
unset ($tabela_stron);
if ($page < $stron) $spis .= (' | <a href="index.php?page='.($page+1).'">następna</a>');
}
?>[/php:1:5c2f3e41f0]

Pozdrawiam, FastRed.
Go to the top of the page
+Quote Post
Kocurro
post 14.02.2004, 18:03:23
Post #2





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

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


Podsyłam Ci kod z jakiego ja korzystam - moze on Cie torchę naprowadzi, wybacz, żen ie pomogę bardziej ale za chwilkę lecę na studniówkę...

jak to Cię nie naprowadzi to jutro popołudniu spróbuję dla Ciebie coś innego napisać...

pozdrawiam

wynik znajduje się w $data...$pid to numer aktualnej strony (liczony od zera), $files to lista plików (a to dlatego, że może być kilka plików na jednej stornie)..

[php:1:9a776e3b3a]<?
$data = "";
if ( $files < 10) {
while( $row = $db->sql_fetchrow( $res)) {
if ( $data != "") $data .= "<br>";
$data .= "<a href="${siteurl}?mod=download&op=file&cid=$cid&fid=$row[id]">$row[name]</a><br>$row[hint]<br>";
};
} else {
if ( isset( $_GET[pid])){ $pid = $_GET[pid];} else {$pid = 0;}
if (( $pid * 10) > $files - 1) {
$template->write_mainblock( "<p class="mb_text" align="center">Nie ma żadnych plików na tej stronie</p>");
} else {
$start = $pid * 10;
$res = $db->sql_query( "SELECT * FROM tvm_download_files WHERE `cid`='$cid' LIMIT ".$start.", 10");
$data = "";
while( $row = $db->sql_fetchrow( $res)) {
if ( $data != "") $data .= "<br>";
$data .= "<a href="${siteurl}?mod=download&op=file&cid=$cid&pid=${pid}&fid=$row[id]">$row[name]</a><br>$row[hint]<br>";
};
$data .= "<br><br><p align="center">";
if ( $pid > 0) {
$data.="<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid-1)."">Poprzednia strona</a> ";
$temp = $pid;
$data .= "&nbsp;&nbsp;";
$data.="<a href="${siteurl}?mod=download&cid=$cid&pid=0">1</a>";
if ( $pid > 1) {
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=1">2</a>";
};
if ( $pid == 3) {
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=2">3</a>";
} else if ( $pid > 3) {
if ( $pid != 4) {
$data.=" .. ";
} else {
$data .= " ";
};
if ( $pid > 4)
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid-2)."">".($pid - 1)."</a>";
$data .=" ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid-1)."">$pid</a>";

};
$data .= " ";
};
$data .= $pid+1;
$last = (($files - 1) - ($files -1) % 10) / 10;
if ( $pid < $last) {
if ( $last - $pid > 2) {
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid+1)."">".($pid + 2)."</a>";
};
if ( $last - $pid > 3) {
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid+2)."">".($pid + 3)."</a>";
};
if ( $last - $pid > 4) {
$data .= " .. ";
};
if ( $last - $pid > 1) {
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($last-1)."">".($last)."</a>";
};
$data .= " ";
$data .= "<a href="${siteurl}?mod=download&cid=$cid&pid=".($last)."">".($last + 1)."</a>";
$data .= "&nbsp;&nbsp;";
$data.="<a href="${siteurl}?mod=download&cid=$cid&pid=".($pid+1)."">Następna strona</a>";
};
$data .= "</p>";
}
};
?>[/php:1:9a776e3b3a]

Wszelkich moderatorowó i opiekunów przepraszam za tego posta - próbuję pomóc tak jak mogę w tym momencie...
Go to the top of the page
+Quote Post
FastRed
post 15.02.2004, 01:15:12
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 30.06.2003
Skąd: Chełm

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


Przejrzałem ten kod, i chyba jednak o coś innego mi chodzi.
Prośba o pomoc ciągle aktualna winksmiley.jpg.

edit: Posiedziałem jeszcze trochę nad tym i jakoś sam sobie napisałem winksmiley.jpg.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 06:07