например
1 | 2 | 3
где 2 и 3 подсвечиваются а 1 нет
на 2 и 3 нажать можноо а на 1 нельзя не хотит.
вот какой код использую
// метод строит панель постраничной навигации
function makePageNavBar(){
$query = mysql_query($this->sql);
$maxpage = ceil(mysql_num_rows($query)/_NUM_ON_PAGE);
for($i=0;$i<$maxpage;$i++){
$ret.='<a href="?letter='.$_GET['letter'].'&page='.$i.'">' .$i. '</a> |';
}
return $ret;
}
// Метод ставит ограничения по странице
function setPage(){
$this->setOrder();
if(empty($_GET['page'])) $page=0;
else $page = $_GET['page'];
$this->sql .= " LIMIT ".$page*_NUM_ON_PAGE.",".(_NUM_ON_PAGE);
}
Спустя 26 минут, 46 секунд (5.06.2010 - 10:11) Игорь_Vasinsky написал(а):
может setPage() этим делом и занимается у тя.. пробуй убрать
Спустя 6 минут, 28 секунд (5.06.2010 - 10:18) NoCash написал(а):
пробывал. в таком случае на всех страницах отобрадается то что на первой странице отображается
Спустя 5 минут, 42 секунды (5.06.2010 - 10:24) Игорь_Vasinsky написал(а):
ну вот такая есть http://www.softtime.ru/article/index.php?id_article=33
Спустя 3 минуты, 16 секунд (5.06.2010 - 10:27) NoCash написал(а):
проблемма в том что мне необходимо не просто постраничную навигацию нужно что бы там еще и алфавитная была, поэтому приходиться мудрить
Спустя 1 минута, 51 секунда (5.06.2010 - 10:29) Игорь_Vasinsky написал(а):
...........
получается алфавитная... которая потом постраничная?
получается алфавитная... которая потом постраничная?
Спустя 3 минуты, 31 секунда (5.06.2010 - 10:32) NoCash написал(а):
ну и та и другая
Спустя 30 секунд (5.06.2010 - 10:33) NoCash написал(а):
вот так вот выглядит
вдруг кто захочет по мудрить по эксперементировать
<?
class alphaPages{
// Задаём алфавит
var $ALPHA = '<b> А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Щ Ш Э Ю Я <b>';
// Инициализация объекта. Установка начальных условий списка
function alphaPages(){
$this->sql = "SELECT * FROM "._TAB_NAME;
}
// Метод выводит организации
function profile(){
$this1->sql = "SELECT * FROM "._TAB_NAME1;
$this1->sql .= " WHERE "._GNL_CAT."=".$_GET['id'];
$query1 = mysql_query($this1->sql);
$ret="<table class='fcaption' style='width:100%'><tr>
<td class='fcaption' width='25%'><b>Отдел</td>
<td class='fcaption' width=''><b>Телефон</td>
<td class='fcaption' width=''><b>E-mail</td></tr>";
while($r = mysql_fetch_array($query1))
{
$ret .= "<tr><td class='fcaption'>".$r[_GNL_DIVISION]."</td>
<td class='fcaption'>".$r[_GNL_PHONE]."</td>
<td class='fcaption'>".$r[_GNL_MAIL]."</td></tr>";
}
return $ret;
}
// метод строит панель алфавитной навигации
function makeAlphaNavBar(){
$sql = 'select DISTINCT(LEFT(UPPER('._FIELD_NAME.'),1)) as letter from '._TAB_NAME;
$query = mysql_query($sql);
while($r = mysql_fetch_assoc($query)){
$this->ALPHA = str_replace($r['letter'], '<a href="?letter='.$r['letter'].'">'.$r['letter'].'</a>' , $this->ALPHA);
}
return $this->ALPHA;
}
// метод строит панель постраничной навигации
function makePageNavBar(){
$query = mysql_query($this->sql);
$maxpage = ceil(mysql_num_rows($query)/_NUM_ON_PAGE);
for($i=0;$i<$maxpage;$i++){
$ret.='<a href="?letter='.$_GET['letter'].'&page='.$i.'">' .$i. '</a> |';
}
return $ret;
}
######### Набор фильтрующих список методов ##############
// Метод фильтрует список по букве
function setLetter(){
$this->sql .= " WHERE "._FIELD_NAME." like '".$_GET['letter']."%'";
}
// Метод ставит ограничения по странице
function setPage(){
$this->setOrder();
if(empty($_GET['page'])) $page=0;
else $page = $_GET['page'];
$this->sql .= " LIMIT ".$page*_NUM_ON_PAGE.",".(_NUM_ON_PAGE);
}
// метод задаёт порядок сортировки
function setOrder(){
$this->sql .= " ORDER BY "._ORDER_BY;
}
#########################################################
// метод строит итоговый список
function getList(){
$query = mysql_query($this->sql);
$ret .="<table><tr><td class='fcaption' width='25%'><b>".AB_NAME_1."</td>
<td class='fcaption' width='25%'><b>".AB_NAME_2."</td>
<td class='fcaption' width=''><b>".AB_NAME_3."</td>
<td class='fcaption' width=''><b>".AB_NAME_4."</td>
</tr>";
while($r = mysql_fetch_assoc($query)){
if ($r[_CAT_CHECK]=='yes'){
$ret .= "<tr><td class='forumheader2'><a href=?id=".$r[_ID_NAME].">".$r[_FIELD_NAME]."</a></td><td class='forumheader2'>".$r[_CITY_NAME]."</td><td class='forumheader2'>".$r[_STREET_NAME]."</td><td class='forumheader2'>".$r[_HOME_NAME]."</td></tr>";
}
}
return $ret;
}
}
// the end of class
?>
вдруг кто захочет по мудрить по эксперементировать
Спустя 17 минут, 41 секунда (5.06.2010 - 10:50) twin написал(а):
Шайтан-машина.
Всё в кучу. И ООП и какакодинг.
Всё в кучу. И ООП и какакодинг.
Спустя 3 минуты, 59 секунд (5.06.2010 - 10:54) NoCash написал(а):
ну если где нить завалялись готовые скрипты на что то подобное можете дать ссылку срадостью посмотрю
Спустя 27 минут, 8 секунд (5.06.2010 - 11:22) twin написал(а):
Да нет, не в том дело. Нормальный классег, только как то необычно.
Обычно если используется ООП, то никак не с разметкой в классе.
Класс подразумевает по сути своей многозадачность. То есть егодОлжно можно использовать в разных местах. А тут жестко
<td class='fcaption' width='25%'><b>Отдел</td>
<td class='fcaption' width=''><b>Телефон</td>
и мама не горюй. Если он одноразовый, зачем класс то? Чтобы круто смотрелось?
И про безопасность грех забывать. Что это такое?
Обычно если используется ООП, то никак не с разметкой в классе.
Класс подразумевает по сути своей многозадачность. То есть его
<td class='fcaption' width='25%'><b>Отдел</td>
<td class='fcaption' width=''><b>Телефон</td>
и мама не горюй. Если он одноразовый, зачем класс то? Чтобы круто смотрелось?
И про безопасность грех забывать. Что это такое?
$this1->sql .= " WHERE "._GNL_CAT."=".$_GET['id'];
Спустя 8 минут, 29 секунд (5.06.2010 - 11:30) Игорь_Vasinsky написал(а):
я делал алфавитную навигацию... у меня всё скромнее было
допустим есть навигатор:
потом при переходе на getpage.php (даже с самой на себя) - я читал get и формировал запрос в базу в нужный столбец - по первой букве (у мя названия java игрушек были там) -
а вот потом по результату строил постраничную навигацию... всё просто
а для циферных значений (0-9) -
вот тут в запросе я ставил логику or и переберал цифры 0-9
допустим есть навигатор:
<a href="getpage.php?letter=a">A</a>
<a href="getpage.php?letter=b">B</a>
<a href="getpage.php?letter=c">C</a>
потом при переходе на getpage.php (даже с самой на себя) - я читал get и формировал запрос в базу в нужный столбец - по первой букве (у мя названия java игрушек были там) -
а вот потом по результату строил постраничную навигацию... всё просто
а для циферных значений (0-9) -
<a href="getpage.php?letter=noletter">#</a>
вот тут в запросе я ставил логику or и переберал цифры 0-9
Спустя 8 минут, 33 секунды (5.06.2010 - 11:39) Игорь_Vasinsky написал(а):
вот такая навигация
DEFINE('ITEMS_PER_PAGE', 18);
// Выбираем из БД общее количество записей
$query = "SELECT COUNT(*) FROM games WHERE $find";
$res = mysql_query( $query );
$total = mysql_result( $res, 0, 0 );
// Проверяем передан ли номер текущей страницы
if ( isset($_GET['page']) ) {
$page = (int)$_GET['page'];
if ( $page < 1 ) $page = 1;
} else {
$page = 1;
}
// Сколько всего получится страниц
$cnt_pages = ceil( $total / ITEMS_PER_PAGE );
if ( $page > $cnt_pages ) $page = $cnt_pages;
// Начальная позиция
$start = ( $page - 1 ) * ITEMS_PER_PAGE;
//$query = "SELECT * FROM jobs ORDER BY id ASC LIMIT ".$start.", ".ITEMS_PER_PAGE;
$query = "SELECT * FROM games WHERE $find ORDER BY ".$sort." LIMIT ".$start.",".ITEMS_PER_PAGE;
$res = mysql_query( $query );
//вывод данных из базы
// Строим постраничную навигацию
if ( $cnt_pages > 1 )
{
echo '<td><div style="margin:1em 0" style="font-size:11px">Страницы: ';
// Проверяем нужна ли стрелка "В начало"
if ( $page > 3 )
$startpage = '<td><div class=href>
<a class=pages href="'.$_SERVER['PHP_SELF'].'?page=1&letter='.$letter.'">«</a>
</div><td><div class=href>...</div>';
else
$startpage = '';
// Проверяем нужна ли стрелка "В конец"
if ( $page < ($cnt_pages - 2) )
$endpage = '<td><div class=href>...</div>
<td><div class=href>
<a href="'.$_SERVER['PHP_SELF'].'?page='.$cnt_pages.'&letter='.$letter.'">»</a></div>';
else
$endpage = '';
// Находим две ближайшие станицы с обоих краев, если они есть
if ( $page - 2 > 0 )
$page2left = '<td><div class=href>
<a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 2).'&letter='.$letter.'">'.($page - 2).'</a>
</div>';
else
$page2left = '';
if ( $page - 1 > 0 )
$page1left = '<td><div class=href>
<a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 1).'&letter='.$letter.'">'.($page - 1).'</a>
</div>';
else
$page1left = '';
if ( $page + 2 <= $cnt_pages )
$page2right = '<td><div class=href>
<a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 2).'&letter='.$letter.'">'.($page + 2).'</a>
</div>';
else
$page2right = '';
if ( $page + 1 <= $cnt_pages )
$page1right = '<td><div class=href>
<a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 1).'&letter='.$letter.'">'.($page + 1).'</a>
</div>';
else
$page1right = '';
// Выводим меню
echo $startpage.$page2left.$page1left.'<td><div class=href>[ <strong>'.$page.'</strong> ]</div>'.$page1right.$page2right.$endpage;
echo '</div>';
}
Спустя 4 минуты, 2 секунды (5.06.2010 - 11:43) Игорь_Vasinsky написал(а):
т.е. и все ссылки активны - и страница подсвечена
Спустя 2 минуты, 21 секунда (5.06.2010 - 11:45) NoCash написал(а):
уху все разобрался) с выводом немного накосячил) класс гуд написан)
Спустя 3 минуты, 20 секунд (5.06.2010 - 11:48) Игорь_Vasinsky написал(а):
да и прав старший кот.. зачем там те класс нужен был....
Спустя 26 минут, 9 секунд (5.06.2010 - 12:14) NoCash написал(а):
изучение не изученного думаю не повредит
Спустя 13 минут, 13 секунд (5.06.2010 - 12:28) Игорь_Vasinsky написал(а):
тож верно...терь всё по местам встало..а то виш как..выглядит как понты...