ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 09.08.2009, 15:47
Аватар для KaMiKadZe
KaMiKadZe
Участник форума
Регистрация: 24.02.2006
Сообщений: 206
Провел на форуме:
2735257

Репутация: 103
По умолчанию

PHP код:
<?php
class Pages
{
    private 
$table// таблица из которой выводить
    
private $page// страница на которой мы сейчас
    
private $lines// сколько выводить записей
    
private $where// условие вывода из базы
    
private $order_by// группировка вывода из базы
    
public $prefix_p// префикс страницы

    
public function select_page($table$page$lines$where$order_by)
    {
        if(
trim($where)) {
            
$this->where " WHERE ".$where;
        } else {
            
$this->where "";
        }
        if(
trim($order_by)) {
            
$this->order_by " ORDER BY ".$order_by;
        } else {
            
$this->order_by "";
        }

        
$this->page $page 1// чтобы страницы выводились с 0, а считались с 1
        
$this->lines $lines;
        
$this->table $table;
        
$begin $this->page $this->lines;
        
$sql "SELECT * FROM `".$this->table."`".$this->where.$this->order_by.
            
" LIMIT ".$begin.", ".$this->lines;
        
$result mysql_query($sql);
        
$return = array();
        while (
$obj mysql_fetch_object($result))
            
array_push($return$obj);
        return 
$return;
    }
    public function 
link_page()
    {

        
$sql "SELECT COUNT(*) FROM `".$this->table."`".$this->where.$this->order_by;
        
$value mysql_query($sql);
        
$value mysql_fetch_row($value);
        
$alllines $value[0];
        
$str ceil($alllines $this->lines); // общее число страниц
        
if($str <= 6) {

            for (
$i 0$i $str$i++) {
                if(
$i == $this->page) {
                    
$return .= "[".($i 1)."]";
                } else {
                    
$return .= "<a href='".$this->prefix_p."=".($i 1)."'>[".($i 1)."]</a>";
                }
            }
            return 
$return;
        } else {
            
$str $str 3;

            for (
$i 0$i 3$i++) {
                if(
$i == $this->page) {
                    
$return .= "[".($i 1)."]";
                } else {
                    
$return .= "<a href='".$this->prefix_p."=".($i 1)."'>[".($i 1)."]</a>";
                }
            }

            
$return .= "...";
            for (
$a 0$a 3$a++) {
                if(
$str == $this->page) {
                    
$return .= "[".($str 1)."]";
                } else {
                    
$return .= "<a href='".$this->prefix_p."=".($str 1)."'>[".($str 1)."]</a>";
                }
                
$str++;
            }
            return 
$return;
        }
    }
}
?>
Выводиться [1][2][3]...[8][9][10], как сделать чтобы при переходе на 2, 3 и т.д страницы выводились [2][3][4]...[8][9][10], [3][4][5]...[8][9][10] и т.д
Работает так
PHP код:
class->select_page($table,$p,3,$where,$order_by); 
$p это страница на который мы сейчас exapmle.php?p=1 или exapmle.php?p=3...
3 - сколько записей на страницу

Последний раз редактировалось KaMiKadZe; 09.08.2009 в 15:50..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ