Среда, 17.06.2026, 05:18
Приветствую Вас Гость | RSS
Поиск по каталогу
Главная страница | Каталог статей | Регистрация | Вход

Информационные технологии
Форма входа
Меню сайта

Категории каталога
php [246]
perl [1]
perl
ASP [1]
AJAX [0]

Друзья сайта

Наш опрос
Оцените мой сайт
Всего ответов: 69

Начало » Статьи » Web программирование » php

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

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

Приступим. Выполните 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 = "<A HREF="?page=".($page-1)."">&lt;</A>";
    } else {
       
$prev = "<";
    }
    if(
$page<round($pages-1)){
       
$next = "<A HREF="?page=".($page+1)."">&gt;</A>";
    } else {
       
$next = ">";
    }
    for(
$i=0;$i<$pages;$i++)
    {
        if(
$i==$page){
            
$return.="[".($i+1)."]";
        } else {
            
$return.="<A HREF="?page=".$i."">[".($i+1)."]</A>";
        }
    }
    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(); // отключение от БД
?>



Источник: http://web-support.ru/
Категория: php | Добавил: freeone (03.06.2007) | Автор: Андрошук Александр
Просмотров: 748 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright Информационные технологии © 2006