<?PHP
// ################################### начало класса ###################################################
class pages
{
private $art_per_page;
private $server;
private $username;
private $password;
private $db;
private $table;
private $what_to_select;
//вносим наши параметры
//$art_per_page - сколько заметок мы хотим вывести на одной странице
//$server - указываем сервер на котором хранится БД (в нашем случае - 'localhost')
//$username - имя пользователя базы данных
//$password - пароль от базы данных
//$db - выбираем конкретную базу данных
//$table - выбираем конкретную табличку из $db
function __construct($art_per_page,$server,$username,$password,$db,$table)
{
$this->ART_PER_PAGE=$art_per_page;
$this->server = $server;
$this->username = $username;
$this->password = $password;
$this->dbase = $db;
$this->table = $table;
}
function what_to_select()
{
}
//соиденяемся с базой данных
private function connect_to_db()
{
$this->connection = mysql_connect("$this->server","$this->username","$this->password") or
die ("laja"); }
//определяем количество заметок и количество страниц
private function math()
{
$this->result = mysql_query ("SELECT * FROM $this->table") or
die ("toje toje laja"); $this->number_of_pages = ceil($this->num_articles/$this->ART_PER_PAGE); }
//определяем текущею страницу
private function math_pages()
{
if ($_GET['page']=='')
{
$this->curent_page = 1;
}
elseif ($_GET['page'] > $this->number_of_pages)
{
$this->curent_page = $this->number_of_pages;
}
elseif (($_GET['page'] < 1
) || (!ctype_digit($_GET['page']))) {
$this->curent_page = 1;
}
else
{
$this->curent_page = round($_GET['page']); }
}
//определяем сколько заметок на данной странице будет(если последнея страница то количество заметок не будет братся из конструктора а будет счиатся по примеру : всего_заметок - всего_количество_страниц * количество_заметок_на_странице(из конструктора) - количество_заметок_на_странице(из конструктора))
//к примеру если по 4 заметки на страницу и всего 9 заметок то количество страниц будет -3 но на последней странице будет одна заметка (9-3*4-4=1)
private function art_in_this_page()
{
$this->NUM_OF_ARTICLES_IN_THIS_PAGE = ($this->curent_page==$this->number_of_pages)? $this->num_articles-($this->number_of_pages*$this->ART_PER_PAGE - $this->ART_PER_PAGE ):$this->ART_PER_PAGE;
}
//определяем с какой заметки выводить на странице заметки (к примеру если на странице но 3 заметки , то на третьей странице надо выводить (из базы данных) наченая с седьмой заметки)
private function art_start()
{
$this->article_start = ($this->curent_page*$this->ART_PER_PAGE)-$this->ART_PER_PAGE;
}
private function query()
{
$this->query = $this->what_to_select['0'];
for ($counter = 1 ; $counter < $this->num_args ; $counter++)
{
$this->query.=','.$this->what_to_select[$counter];
}
$this->query = 'SELECT '.$this->query.' FROM '.$this->table.' LIMIT '.$this->article_start.','.$this->NUM_OF_ARTICLES_IN_THIS_PAGE;
}
//выводим всё указанные поля
private function write_articles()
{
//если неуказанно неодного поля - пишем что надо указать
if ($this->num_args==0)
{
echo "you must intoduce min - one fild that you wont to extract from db";
}
else
{
for ($i = 1; $i <= $this->NUM_OF_ARTICLES_IN_THIS_PAGE ; $i++)
{
for ($counter = 0 ; $counter < $this->num_args ; $counter++)
{
$this->critery = $this->what_to_select[$counter];
echo $this->myrow[$this->critery].'<br>';
}
echo "<br><br>";
}
}
}
//выводим страницы ссылками на них
private function write_pages()
{
if ($this->number_of_pages != 1)
{
for ($i=1 ; $i<=$this->number_of_pages ; $i++)
{
if ($i != $this->curent_page)
{
echo '<a href="/db1.php?page='.$i.'">'.$i.'</a> ';
}
else
{
echo $i." ";
}
}
}
}
//выполняем все вышеперечисленные функции
public function write_all()
{
$this->connect_to_db();
$this->math();
$this->math_pages();
$this->art_in_this_page();
$this->art_start();
$this->query();
$this->write_articles();
$this->write_pages();
}
}
// ################################### конец класса ###################################################
// ################################### тело скрипта ###################################################
//вводим количество заметок н одной странице
//указываем сервер на котором хранится БД (в нашем случае - 'localhost')
//указываем имя пользователя базы данных
//указываем пароль от базы данных
//$указывае выбираем конкретную базу данных
//указываем выбираем конкретную табличку из базы
$obj = new pages('number_of _articles_per_page','host','username','password','database','table');
//указываем какие поля мы хотим вывестиз таблицы
$obj->what_to_select('ADDR','CITY','FIO','PHONE');
$obj->write_all();
?>