Меню главная>>>Статьи и учебники>>>Постраничный вывод из MySQL
 
  • Главная
  • Уроки PhotoShop
  • Статьи и учебники
  • JavaScript скрипты
  • Софт Web-мастера
  • Шаблоны сайтов
  • Стройматериалы
  • Форум для web-мастеров
  • Гостевая
  • Карта сайта
  • Хостинг

  • Подпишитесь на нашу рассылку для web-мастеров:
    Форма для подписки на
    Maillist.ru

    Определение тИЦ и PR вашего сайта


    Введите адрес сайта, тИЦ и PR которого вы хотите определить

    без http:// !!!
    http://
    Автор: неизвестен
    Сайт:
    Когда добавлено: 19.07.07

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

    Постраничный вывод из 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(); // отключение от БД
    ?>
    
    



    страница прочитана 21 раз