Рейтинг@Mail.ru
 

Шаг 1

Подготовительные работы

Очень часто объем информации, который хочется явить взору любопытного юзера, настолько велик, что не только прочитать его одним махом, но и загрузить на одну страницу становится практически невозможным. Требуется как то информацию упорядочить. Самый цивилизованный способ - разбить на несколько страниц и снабдить навигацией.
Если это сделать в автоматическом режиме, получится знакомый нам всем пагинатор. Или по русски - листалка. Или постраничная навигация. Как больше нравится.

Вот сейчас мы и изготовим такую вещь, чтобы наш сайт был удобочитаем.

Для начала нужно изготовить полигон. То есть площадку, на которой мы будем разворачивать боевые действия.
Первое - создадим таблицу в бд, которую и будем листать:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
-- 
-- Структура таблицы `table`
-- 

CREATE TABLE `table` (
  `id` int(10) NOT NULL auto_increment,
  `text` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 AUTO_INCREMENT=101 ;

-- 
-- Дамп данных таблицы `table`
-- 

INSERT INTO `table` VALUES (1, 'текст 1');
INSERT INTO `table` VALUES (2, 'текст 2');
INSERT INTO `table` VALUES (3, 'текст 3');
INSERT INTO `table` VALUES (4, 'текст 4');
INSERT INTO `table` VALUES (5, 'текст 5');
INSERT INTO `table` VALUES (6, 'текст 6');
INSERT INTO `table` VALUES (7, 'текст 7');
INSERT INTO `table` VALUES (8, 'текст 8');
INSERT INTO `table` VALUES (9, 'текст 9');
INSERT INTO `table` VALUES (10, 'текст 10');
INSERT INTO `table` VALUES (11, 'текст 11');
INSERT INTO `table` VALUES (12, 'текст 12');
INSERT INTO `table` VALUES (13, 'текст 13');
INSERT INTO `table` VALUES (14, 'текст 14');
INSERT INTO `table` VALUES (15, 'текст 15');
INSERT INTO `table` VALUES (16, 'текст 16');
INSERT INTO `table` VALUES (17, 'текст 17');
INSERT INTO `table` VALUES (18, 'текст 18');
INSERT INTO `table` VALUES (19, 'текст 19');
INSERT INTO `table` VALUES (20, 'текст 20');
INSERT INTO `table` VALUES (21, 'текст 21');
INSERT INTO `table` VALUES (22, 'текст 22');
INSERT INTO `table` VALUES (23, 'текст 23');
INSERT INTO `table` VALUES (24, 'текст 24');
INSERT INTO `table` VALUES (25, 'текст 25');
INSERT INTO `table` VALUES (26, 'текст 26');
INSERT INTO `table` VALUES (27, 'текст 27');
INSERT INTO `table` VALUES (28, 'текст 28');
INSERT INTO `table` VALUES (29, 'текст 29');
INSERT INTO `table` VALUES (30, 'текст 30');
INSERT INTO `table` VALUES (31, 'текст 31');
INSERT INTO `table` VALUES (32, 'текст 32');
INSERT INTO `table` VALUES (33, 'текст 33');
INSERT INTO `table` VALUES (34, 'текст 34');
INSERT INTO `table` VALUES (35, 'текст 35');
INSERT INTO `table` VALUES (36, 'текст 36');
INSERT INTO `table` VALUES (37, 'текст 37');
INSERT INTO `table` VALUES (38, 'текст 38');
INSERT INTO `table` VALUES (39, 'текст 39');
INSERT INTO `table` VALUES (40, 'текст 40');
INSERT INTO `table` VALUES (41, 'текст 41');
INSERT INTO `table` VALUES (42, 'текст 42');
INSERT INTO `table` VALUES (43, 'текст 43');
INSERT INTO `table` VALUES (44, 'текст 44');
INSERT INTO `table` VALUES (45, 'текст 45');
INSERT INTO `table` VALUES (46, 'текст 46');
INSERT INTO `table` VALUES (47, 'текст 47');
INSERT INTO `table` VALUES (48, 'текст 48');
INSERT INTO `table` VALUES (49, 'текст 49');
INSERT INTO `table` VALUES (50, 'текст 50');
INSERT INTO `table` VALUES (51, 'текст 51');
INSERT INTO `table` VALUES (52, 'текст 52');
INSERT INTO `table` VALUES (53, 'текст 53');
INSERT INTO `table` VALUES (54, 'текст 54');
INSERT INTO `table` VALUES (55, 'текст 55');
INSERT INTO `table` VALUES (56, 'текст 56');
INSERT INTO `table` VALUES (57, 'текст 57');
INSERT INTO `table` VALUES (58, 'текст 58');
INSERT INTO `table` VALUES (59, 'текст 59');
INSERT INTO `table` VALUES (60, 'текст 60');
INSERT INTO `table` VALUES (61, 'текст 61');
INSERT INTO `table` VALUES (62, 'текст 62');
INSERT INTO `table` VALUES (63, 'текст 63');
INSERT INTO `table` VALUES (64, 'текст 64');
INSERT INTO `table` VALUES (65, 'текст 65');
INSERT INTO `table` VALUES (66, 'текст 66');
INSERT INTO `table` VALUES (67, 'текст 67');
INSERT INTO `table` VALUES (68, 'текст 68');
INSERT INTO `table` VALUES (69, 'текст 69');
INSERT INTO `table` VALUES (70, 'текст 70');
INSERT INTO `table` VALUES (71, 'текст 71');
INSERT INTO `table` VALUES (72, 'текст 72');
INSERT INTO `table` VALUES (73, 'текст 73');
INSERT INTO `table` VALUES (74, 'текст 74');
INSERT INTO `table` VALUES (75, 'текст 75');
INSERT INTO `table` VALUES (76, 'текст 76');
INSERT INTO `table` VALUES (77, 'текст 77');
INSERT INTO `table` VALUES (78, 'текст 78');
INSERT INTO `table` VALUES (79, 'текст 79');
INSERT INTO `table` VALUES (80, 'текст 80');
INSERT INTO `table` VALUES (81, 'текст 81');
INSERT INTO `table` VALUES (82, 'текст 82');
INSERT INTO `table` VALUES (83, 'текст 83');
INSERT INTO `table` VALUES (84, 'текст 84');
INSERT INTO `table` VALUES (85, 'текст 85');
INSERT INTO `table` VALUES (86, 'текст 86');
INSERT INTO `table` VALUES (87, 'текст 87');
INSERT INTO `table` VALUES (88, 'текст 88');
INSERT INTO `table` VALUES (89, 'текст 89');
INSERT INTO `table` VALUES (90, 'текст 90');
INSERT INTO `table` VALUES (91, 'текст 91');
INSERT INTO `table` VALUES (92, 'текст 92');
INSERT INTO `table` VALUES (93, 'текст 93');
INSERT INTO `table` VALUES (94, 'текст 94');
INSERT INTO `table` VALUES (95, 'текст 95');
INSERT INTO `table` VALUES (96, 'текст 96');
INSERT INTO `table` VALUES (97, 'текст 97');
INSERT INTO `table` VALUES (98, 'текст 98');
INSERT INTO `table` VALUES (99, 'текст 99');
INSERT INTO `table` VALUES (100, 'текст 100');


Теперь возьмем установочные данные из конфига и сделаем отдельный файл коннекта.
mysql.php
1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
<?php


/**
* Database server.
* Сервер БД.
*/   
   
define('IRB_DBSERVER''localhost'); 
  
/**
* Database user.
* Пользователь БД
*/ 
   
define('IRB_DBUSER''root'); 
  
/**
* Database password.
* Пароль БД
*/     
   
define('IRB_DBPASSWORD''');
  
/**
* Database name.
* Название базы
*/ 
   
define('IRB_DATABASE''basa'); 


/**   
* Подключение и установка кодировки соединения  
*/     
    
$IRB_CONNECT mysqli_connect(IRB_DBSERVERIRB_DBUSERIRB_DBPASSWORDIRB_DATABASE
                   or die(
'No connect'); 
    
    
mysqli_set_charset($IRB_CONNECT'utf8'); 




Ну и сам индексный файл, где будем сочинять скрипт. Пока поместим туда просто выборку из таблицы:
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

    
include './mysql.php';

   
    
$res mysqli_query($IRB_CONNECT, "SELECT * FROM `table` ");
    
    
$table "<table width=\"50%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n";

    if(
mysqli_num_rows($res) > 0)        
        while(
$row mysqli_fetch_assoc($res))
        {
            
$table .= "<tr>\n<td>\n\t"$row['text']. "\n</td>\n</tr>\n";
        }
     
    
$table .= "</table>\n";    
    
    echo 
$table;    


Всё, можно запускать. Вот мы видим, что на странице у нас 100 строк текста. А нам допустим надо 10 страниц по 10 строк на кждой.

Проследуем в следующий раздел.