Архив рубрики: Полезности

Постраничный вывод

Многие из вас обращали внимание, что данные на разных ресурсах выводятся постранично, и, конечно же, любой вебмастер хотел бы применить такой способ и у себя на сайте. Сегодня я расскажу, как это можно сделать с помощью MySQL.

Но сначала я объясню, с чего мы начнем. Первым делом проверяем, выбрали ли мы страницу просмотра. Следующий этап – подсчитываем, откуда нам выводить записи. Как это сделать? Рассказываю: берем текущую страницу и умножаем ее на количество записей на страницу. И последнее, нам нужно сделать SQL-запрос к базе данных, а потом мы выведем результат. Ну и в конце нам останется написать навигацию.

Хороший вебмастер еще на стадии создания сайта думает, как можно на нем заработать. Лично я сотрудничаю с партнерской программой www.smartbucks.ru.

Итак, давайте приступим к делу. Для начала выполняем SQL-запрос:

CREATE TABLE tbl_books (
book_id int(11) NOT NULL auto_increment,
book_name varchar(50) NOT NULL default '',

book_cash float NOT NULL default '0',
PRIMARY KEY (book_id)

) TYPE=MyISAM;
INSERT INTO tbl_books VALUES (1, 'Книга номер 1', '2');

INSERT INTO tbl_books VALUES (2, 'Книга номер 2', '3');
INSERT INTO tbl_books VALUES (3, 'Книга номер 3', '4');

INSERT INTO tbl_books VALUES (4, 'Книга номер 4', '5');
INSERT INTO tbl_books VALUES (5, 'Книга номер 5', '6');

INSERT INTO tbl_books VALUES (6, 'Книга номер 6', '7');
INSERT INTO tbl_books VALUES (7, 'Книга номер 7', '8');

INSERT INTO tbl_books VALUES (8, 'Книга номер 8', '9');
INSERT INTO tbl_books VALUES (9, 'Книга номер 9', '10');

INSERT INTO tbl_books VALUES (10, 'Книга номер 10', '11');
INSERT INTO tbl_books VALUES (11, 'Книга номер 11', '12');

INSERT INTO tbl_books VALUES (12, 'Книга номер 12', '13');
INSERT INTO tbl_books VALUES (13, 'Книга номер 13', '14');

INSERT INTO tbl_books VALUES (14, 'Книга номер 14', '15');
INSERT INTO tbl_books VALUES (15, 'Книга номер 15', '16');

Советую сделать оформление в виде функций обработчиков. Для этого сначала создаем
функцию page(). Она будет обрабатывать данные о запрошенном номере
страницы:


<?php
function page()
{
if(empty($_GET["page"])){

$page = 0;
} else {
if(!is_numeric($_GET["page"])) die("Неправильный формат номера страницы!");

$page = $_GET["page"];
}
return $page;

}

Эта функция нужна для проверки выбора страницы. Также она вводит сообщение об
ошибке, если в странице присутствуют буквы. Следующий шаг - SQL-запрос:

function sql_query($onpage, $page, $table)
{
$begin = $page*$onpage; // откуда начинать

$sql = "SELECT * FROM ".$table." LIMIT ".$begin.", ".$onpage;
$result = mysql_query($sql) or die(mysql_error());

return $result;
}

Навигационная функция:


function navigation($onpage, $page, $table)
{
$return = null;

$count = mysql_query("SELECT COUNT(*) FROM tbl_books") or die(mysql_error());
$count = mysql_fetch_array($count);

$count = $count[0];
$pages = $count/$onpage;
if($page!==0){

$prev = "<";
} else {

$prev = "<";
}
if($page

$next = ">";

} else {
$next = ">";
}

for($i=0;$i<$pages;$i++)
{
if($i==$page){

$return.="[".($i+1)."]";
} else {

$return.="[".($i+1)."];";
}

}
return $prev.$return.$next;
}

Как нам теперь воспользоваться этими функциями?


$onpage = 4; // записей на страницу
$table = "tbl_books"; // из какой таблицы
mysql_connect("localhost", "root", "pass") or die(mysql_error()); // коннект к БД

mysql_select_db("test"); // выбор БД
$page = page(); // определяем страницу

$result = sql_query($onpage, $page, $table); // sql - запрос
while($data = mysql_fetch_array($result)) // цикл вывода

{
// шаблон вывода нужно изменить
// $data["название_поля"] - содержание поля
echo $data["book_id"]." <B>".$data["book_name"]."</B><BR>";;

echo $data["book_cash"]."$<P>";
}
$navigation = navigation($onpage, $page, $table); // определим навигацию

echo $navigation; // выведем ее
mysql_close(); // отключение от БД

?>

15.5.2010 | комментариев 2

Тренды 2009

Нашел занимательную карту трендов 2009 года. Очень интересная картина, жаль, что только для западного интернета без Рунета.

(more...)

30.6.2009 | комментариев 1