laucinieks Posted September 29, 2011 Report Share Posted September 29, 2011 for($a = $page - 5; $a <= $page + 5; $a++) { if ($a < 1) { $a = 1; } if ($a > $total_pages) { $a = $total_pages } if($a == $page) { echo("<b> $a</b> | "); } else { echo(" <a href=http://www.lapa.com/?page=$a> $a </a> | "); } } Tātad viss būtu labi, bet aizejot uz pēdējo lapu, man aiziet pēdējās lapas mūžīgais cikls, piemēram ja pēdējā lapa ir 133, tad 133 + 133 + 133.... Tātad vajadzētu izdarīt tā, ja lapa ir < 5 tad a = $page, ja lapa ir > $last page - 5 tad $a <= $page. Nu kaut kā tā. L. Quote Link to comment Share on other sites More sharing options...
Faks Posted September 29, 2011 Report Share Posted September 29, 2011 palasi sito rakstu tad sapratisi kas ir kas :) http://www.phpfreaks.com/tutorial/basic-pagination Quote Link to comment Share on other sites More sharing options...
rebuilder Posted September 29, 2011 Report Share Posted September 29, 2011 Es minu, bet te gan jau ir daudz racionālāks risinājums. Sākumā pastāsti, kāpēc to vajag! Quote Link to comment Share on other sites More sharing options...
laucinieks Posted September 29, 2011 Author Report Share Posted September 29, 2011 Man vajag, lai izvada uz ekrāna tādā secībā lapas no pašreizējās lapas 5 uz atpakaļu un 5 uz priekšu, kopā lai sanāk 11 lapas + poga next un last un prev . , un first. Tās next,last,prev,first darbojas viss ok, bet tie cipari nesanāk. Gan jau ir kaut kāds elementārs risinājums, bet nenāk prātā nekas :( )! L. Quote Link to comment Share on other sites More sharing options...
andism88 Posted September 29, 2011 Report Share Posted September 29, 2011 Atradu vienu vecu savu funkciju.. mazliet pielabo savām vajadzībām un ja gribas tad savādāk "uzfrišini" un aidā... function lapaspuses ($lapa,$lapaskopa,$links){ if ($lapa>2) { echo '<a href="'.$links.'1/"><<</a>'; } if ($lapa>1) { $ieprieksejais=$lapa-1; echo '<a href="'.$links.$ieprieksejais.'/"><</a><a href="'.$links.'1/">1</a>'; } if ($lapa>5) { $atpakaljdp=$lapa-4; echo '<a href="'.$links.$atpakaljdp.'/">...</a>'; } if ($lapa>4) { $atpakaljdp=$lapa-3; echo '<a href="'.$links.$atpakaljdp.'/">'.$atpakaljdp.'</a>'; } if ($lapa>3) { $atpakaljdp=$lapa-2; echo '<a href="'.$links.$atpakaljdp.'/">'.$atpakaljdp.'</a>'; } if ($lapa>2) { $atpakaljdp=$lapa-1; echo '<a href="'.$links.$atpakaljdp.'/">'.$atpakaljdp.'</a>'; } if ($lapa>=1) { echo '<b>'.$lapa.'</b>'; } //uzprieksju if ($lapa<$lapaskopa) { $prieksjdp=$lapa+1; echo '<a href="'.$links.$prieksjdp.'/">'.$prieksjdp.'</a>'; } $lk=$lapaskopa-1; if ($lapa<$lk) { $prieksjdp=$lapa+2; echo '<a href="'.$links.$prieksjdp.'/">'.$prieksjdp.'</a>'; } $lk=$lapaskopa-2; if ($lapa<$lk) { $prieksjdp=$lapa+3; echo '<a href="'.$links.$prieksjdp.'/">'.$prieksjdp.'</a>'; } $lk=$lapaskopa-4; if ($lapa<$lk) { $prieksjdp=$lapa+4; echo '<a href="'.$links.$prieksjdp.'/">...</a>'; } if ($lapa<$lapaskopa) { echo '<a href="'.$links.$lapaskopa.'/">'.$lapaskopa.'</a>'; } if ($lapa<$lapaskopa) { $prieksjdp=$lapa+1; echo '<a href="'.$links.$prieksjdp.'/">></a>'; } if ($lapa<$lapaskopa) { echo '<a href="'.$links.$lapaskopa.'/">>></a>'; } } Pēc tam piemēram: <?php lapaspuses (37,54,'links/lapa/'); ?> <br /> <?php lapaspuses (1,54,'links/lapa/'); ?> <br /> <?php lapaspuses (2,54,'links/lapa/'); ?> <br /> <?php lapaspuses (53,54,'links/lapa/'); ?> <br /> <?php lapaspuses (54,54,'links/lapa/'); ?> Tavā piemērā : <?php lapaspuses ($page,$total_pages,'http://www.lapa.com/?page='); ?> Quote Link to comment Share on other sites More sharing options...
Kemito Posted September 29, 2011 Report Share Posted September 29, 2011 Kungs pasargdievs āmen. function draw_pages($count, $perpage, $offset = 5) { $pages = ceil($count/$perpage); if($pages < 2) return ''; $r = '<br />'; $page = (empty($_GET['p']) || $_GET['p'] < 2) ? 1 : (int)$_GET['p']; $first = $page >= $offset+1 ? $page-$offset : 1; $last = $page <= $pages-$offset ? $page+$offset : $pages; if($page > 4) $r.= sprintf('?p=1">«</a><a href="?p=%d"><</a>', $page-1); for($i = $first; $i <= $last; $i++) $r.= sprintf('%s<a href="?p=%d" style="color: white;background: #eaeaea;border: 1px solid #ccc;margin: 4px 1px 4px 1px;color: #000;text-decoration: none; padding: 3px; float: left;">%d</a>', $page==$i ? '' : '', $i, $i); if($pages > 4) $r.= sprintf('<a href="?p=%d">></a><a href="?p=%d">»</a>', $page+1, $pages); return '<div style="width: 900px; float: left;"><div style="font-size: 14px;">'.$r.'</div></div>'; } Pielietojumu ja nu vaig, tad saki. Autortisības šai funkcijai ja nemaldos ir Mārcim ! :) Strādā labi. Quote Link to comment Share on other sites More sharing options...
reiniger Posted September 29, 2011 Report Share Posted September 29, 2011 Es personigi izmantoju šo ka paraugu un protams pielāgoju savām vajadzībām http://net.tutsplus.com/tutorials/php/how-to-paginate-data-with-php/ Quote Link to comment Share on other sites More sharing options...
daGrevis Posted September 30, 2011 Report Share Posted September 30, 2011 Baigās jums te savas house-made funckijas... :D Es izmantoju šo klasīti... Quote Link to comment Share on other sites More sharing options...
laucinieks Posted September 30, 2011 Author Report Share Posted September 30, 2011 Paldies visiem ;) Atradu savu risinājumu $num = 5; $num2 = 5; for($a = $page - $num; $a <= $page + $num2; $a++) { if ($a < 1) { $a = 1; } if ($a == $total_pages) { $num2 = 0; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.