PHP: <? /* Управление страницами */ $res_sql = mysql_num_rows(mysql_query("SELECT * FROM mail")); $page = $_GET['page']; if ($page == '') { $page = '0'; } else { $page = $page; } $i1 = 25; $i2 = $page+$i1; $i3 = $page-$i1; if ($page <= 0) { $pages = "Предыдущая | <a href=index.php?page=$i2&sort=$sort>Следующая</a>"; } elseif ($page >= $res_sql-25) { $pages = "<a href=index.php?page=$i3&sort_po=$sort>Предыдущая</a> | Следующая"; } else { $pages = "<a href=index.php?page=$i3&sort_po=$sort>Предыдущая</a> | <a href=index.php?page=$i2&sort_po=$sort>Следующая</a>"; } ?> Сейчас работает предыдущая, следующая... а как сделать страницы?? 1-2-3-...??? Заранее спасибо
Реальные пацаны циклом пересчитывают. Типа: PHP: <? $res_sql = mysql_query("SELECT * FROM mail"); $i=0; while ($x=mysql_fetch_array($res_sql)) $i++; ?>
Старьё: PHP: <?php # paginator function paginator($page = 1, $p_num = 1, $location = NULL) { # Пагинатор $p_str[] = '<table cellspacing="0px"><tr>'; for($i = 1; $i <= 3; $i++) { if($page == $i and $i <= $p_num) { $p_str[] = '<td style="padding:3px; background-color:#fdd3d3; border:#adadad solid 1px;"><b>'.$i.'</b></td><td> </td>'; } elseif($i <= $p_num) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$i.SID.'">'.$i.'</a></td><td> </td>'; } } if($p_num > 3) { $p_str[] = '<td>...</td><td> </td>'; if($page == 3 and $p_num > 6) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p=4'.SID.'">4</a></td><td> </td>'; } elseif($page >= 4) { if(($c_page = $page - 1) >= 4 and $c_page <= ($p_num - 3)) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$c_page.SID.'">'.$c_page.'</a></td><td> </td>'; } if($page <= ($p_num - 3)) { $p_str[] = '<td style="padding:3px; background-color:#fdd3d3; border:#adadad solid 1px;"><b>'.$page.'</b></td><td> </td>'; } if(($c_page = $page + 1) <= ($p_num - 3)) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$c_page.SID.'">'.$c_page.'</a></td><td> </td>'; } } $p_str[] = '<td>...</td><td> </td>'; if($page == ($c_page = $p_num - 2) and $p_num > 5) { $p_str[] = '<td style="padding:3px; background-color:#fdd3d3; border:#adadad solid 1px;"><b>'.$c_page.'</b></td><td> </td>'; } elseif($p_num > 5) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$c_page.SID.'">'.$c_page.'</a></td><td> </td>'; } if($page == ($c_page = $p_num - 1) and $p_num > 4) { $p_str[] = '<td style="padding:3px; background-color:#fdd3d3; border:#adadad solid 1px;"><b>'.$c_page.'</b></td><td> </td>'; } elseif($p_num > 4) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$c_page.SID.'">'.$c_page.'</a></td><td> </td>'; } if($page == $p_num and $p_num > 3) { $p_str[] = '<td style="padding:3px; background-color:#fdd3d3; border:#adadad solid 1px;"><b>'.$p_num.'</b></td><td> </td>'; } elseif($p_num > 3) { $p_str[] = '<td style="padding:3px;"><a href="'.HTTP.DOMAIN.PATH.$location.'&p='.$p_num.SID.'">'.$p_num.'</a></td><td> </td>'; } } $p_str[] = '</tr></table>'; return implode('', $p_str); }
PHP: <?php //Вывод бара навигации << 1 2 3 >> $result = $mysqli->query('SELECT COUNT(`id`) FROM `photos` WHERE `gall_id`='.$id) or mysqdie($mysqli->errno.'@'.$mysqli->error, $_POST["section"]); $maxid = $result->fetch_array(MYSQLI_NUM); $result->close(); if ($maxid[0] > 20) { $mtxt .= '<div class="line"></div>'; $firstlink = ($page > 1) ? '<a onClick="newContent(\'news&page=0\')" title="К первой странице"><<</a> ' : null; $pages = floor($maxid[0]/20); $backlink = ($page > 0) ? ' <a onClick="newContent(\'news&page='.($page-1).'\')">'.($page+1).'</a> ' : null; $thislink = $page+1; $nextlink = (($page+1) <= $pages) ? ' <a onClick="newContent(\'news&page='.($page+1).'\')">'.($page+2).'</a> ' : null; $lastlink = (($page+2) <= $pages) ? ' <a onClick="newContent(\'news&page='.$pages.'\')" title="К последней странице">>></a>' : null; $mtxt .= '<div class="linkbar">'.$firstlink . $backlink . $thislink . $nextlink . $lastlink.'</div>'; } ?> 20 редисок на страницу Вид бара такой: << 3 4 5 >> Только спаны надо заменить линками