![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
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 .= " "; $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 .= " "; $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... |
|
|
![]()
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 ![]() edit: Posiedziałem jeszcze trochę nad tym i jakoś sam sobie napisałem ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2025 - 06:07 |