|
|
|
| Как мне сделать Постраничный вывод из таблиц SQL с помощью PHP?
Качал, читал книги, статьи так и неполучается сделать постраничный вывод.
Люди помогите пожалуйста! | |
|
|
|
|
|
|
|
для: Gnusmas
(08.03.2006 в 02:26)
| | Какая таблица испльзуется и как должны выглядеть ссылки постраничной навигации?
PS Вопросы, посвящённые базам данных лучше сразу помещать в разделе MySQL | |
|
|
|
|
|
|
|
для: cheops
(08.03.2006 в 02:37)
| | Таблица "downloads_files". Какой вид будут иметь ссылки мне пофигу, мне главное чтоб работала!!
Извеняюсь за то что нетам создал тему. | |
|
|
| |
|
|
|
|
для: cheops
(08.03.2006 в 12:58)
| | Вот база:
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Мар 09 2006 г., 02:02
-- Версия сервера: 4.1.8
-- Версия PHP: 4.3.10
--
-- БД: 'engine'
--
-- --------------------------------------------------------
--
-- Структура таблицы 'download_files'
--
CREATE TABLE 'download_files' (
'file_id' int(11) NOT NULL default '0',
'mytitle' varchar(255) NOT NULL default '',
'disc' text NOT NULL,
'link' varchar(255) NOT NULL default '',
'size' varchar(255) NOT NULL default '',
'date' datetime NOT NULL default '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
--
-- Дамп данных таблицы 'download_files'
--
INSERT INTO 'download_files' VALUES (1, 'Maxthon 1.5.2.21', 'Новая версия браузера, работающего на движке Internet Explorer. Программа позволяет просматривать веб-страницы в многооконном режиме. Отличительной чертой является подключение большого числа всевозможных плагинов, которые можно выбирать по собственному усмотрению. Подключив к Maxthon необходимые вам дополнения, вы получите быстрый и многофункциональный браузер, с помощью которого можно заниматься удобным интернет-серфингом. Поддерживаются скины. В этой версии улучшены настройки безопасности, улучшен блокировщик всплывающих окон, появились новые настройки, исправлены ошибки.', 'http://dl.iad.downloadhosting.com/download/myie2/mcombo.exe', '5028 кб', '2006-03-07 15:48:03');
INSERT INTO 'download_files' VALUES (16, '454', '', '43435', '4354', '2006-03-09 01:55:39');
INSERT INTO 'download_files' VALUES (15, 'дждждждж', 'дждждждж', 'ждждждждж', 'дджджд', '2006-03-09 01:55:36');
INSERT INTO 'download_files' VALUES (14, 'тьитьитьит', 'итьить', 'итьть', 'ьить', '2006-03-09 01:55:31');
INSERT INTO 'download_files' VALUES (7, 'JetStart Free 3.17', 'Вышла новая версия программы для управления меню Пуск. Она позволяет сгруппировать ярлыки по категориям для их быстрого запуска. Из всплывающего меню, вызываемого нажатием правой кнопки мыши по значку программы в Системном лотке, можно вызвать дополнительные функции. Например, среди них есть возможность закрытия всех приложений, выключение и перезагрузка компьютера и т.д. В JetSrart Free присутствует удобный интерфейс для добавления новых программ в меню быстрого запуска. В специальном Мастере есть функция поиска ярлыков и алфавитный указатель. При использовании функции поиска можно легко найти необходимую программу, зная только несколько первых букв ее названия. Кроме того, через интерфейс данного Мастера можно запустить программу на выполнение, а эту функцию можно использовать для проверки ярлыка на работоспособность. В этой версии улучшено импортирование настроек меню Пуск, улучшен запуск программы.', 'http://codesector.fileburst.com/jetstart.exe', '668 кб', '2006-03-07 20:46:27');
INSERT INTO 'download_files' VALUES (8, 'FontViewer 1.2', 'Обновилась утилита, предназначенная для просмотра шрифтов. Она представляет собой удобное средство для просмотра и установки шрифтов в систему. В программе имеется специальная область экрана, где можно набрать текст. Это делается для того, чтобы предоставить пользователю возможность просмотра начертания того или иного семейства шрифтов. В программе возможны различные варианты просмотра с изменением размера шрифта, жирности и наклона. Утилита имеет маленький размер дистрибутива (менее 100 кб). Область применения FontViewer весьма разнообразна. Так, например, люди, занимающиеся веб-дизайном и работающие с большой коллекцией шрифтов, могут достаточно быстро выбрать подходящий шрифт и установить его в систему.\r\n', 'http://gljakal.altervista.org/files/fontview_setup.exe', '97 кб', '2006-03-07 20:46:56');
INSERT INTO 'download_files' VALUES (9, 'MP3 Cat 1.27', 'Опубликована новая версия программы для создания каталога из MP3 и других музыкальных файлов. Утилита сканирует выбранные директории на наличие в них музыкальных файлов и отображает в удобном виде найденную информацию. Интуитивно понятный интерфейс позволит быстро разобраться во всех тонкостях работы программы. Вы можете за короткое время создать базу, в которой будет содержаться информация обо всех имеющихся у вас музыкальных файлах. MP3 Cat умеет выбирать, искать, сортировать, добавлять и редактировать ID3-теги, создавать список всех файлов созданного пользователем каталога в текстовом или HTML формате. Поддерживается совместная работа с Winamp. В этой версии улучшен поиск, улучшена работа с ID3-тегами, исправлены ошибки. ', 'http://xoomer.virgilio.it/wiz/MP3Cat.exe', '2,6 мб', '2006-03-07 20:59:26');
INSERT INTO 'download_files' VALUES (10, 'выавыавы', 'аывавыа', 'выавыа', 'выавыа', '2006-03-08 00:02:58');
INSERT INTO 'download_files' VALUES (13, 'некек', 'екнекнекнек', 'некн', 'екн', '2006-03-09 01:55:27');
INSERT INTO 'download_files' VALUES (12, 'куе', 'куекуе', 'куеук', 'ававпа', '2006-03-09 01:55:22');
INSERT INTO 'download_files' VALUES (11, 'апапап', 'апап', 'апапа', 'пап', '2006-03-08 05:00:18');
INSERT INTO 'download_files' VALUES (17, '6666', '666', '66', '435', '2006-03-09 01:55:43');
INSERT INTO 'download_files' VALUES (18, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:55:47');
INSERT INTO 'download_files' VALUES (19, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:55:50');
INSERT INTO 'download_files' VALUES (20, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:55:53');
INSERT INTO 'download_files' VALUES (21, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:55:57');
INSERT INTO 'download_files' VALUES (22, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:56:00');
INSERT INTO 'download_files' VALUES (23, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:22');
INSERT INTO 'download_files' VALUES (24, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:24');
INSERT INTO 'download_files' VALUES (25, 'download_files', 'download_files', 'download_files', '', '2006-03-09 01:58:27');
INSERT INTO 'download_files' VALUES (26, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:31');
INSERT INTO 'download_files' VALUES (27, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:35');
INSERT INTO 'download_files' VALUES (28, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:37');
INSERT INTO 'download_files' VALUES (29, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:40');
INSERT INTO 'download_files' VALUES (30, 'download_files', 'download_files', 'download_files', 'download_files', '2006-03-09 01:58:44');
|
Думаю это то..... | |
|
|
|
|
|
|
|
для: Gnusmas
(09.03.2006 в 02:04)
| | Постраничную навигацию можно организовать при помощи следующего скрипта
<?php
// Устанавливаем соединение с сервером MySQL
require_once("config.php");
// Элемент постраничной навигация
if(empty($_GET['page'])) $page = 1;
else $page = $_GET['page'];
// Число ссылок в постраничной навигации
$page_link = 3;
// Число позиций на странице
$pnumber = 10;
// Постраничная навигация
$first = ($page - 1)*$pnumber;
// Формируем и выполняем SQL-запросы
$query = "SELECT COUNT(*) FROM download_files";
$num = mysql_query($query);
if(!$num) exit("Ошибка при обращении к таблице");
// Ввыводим ссылки на другие страницы
$total = mysql_result($num,0);
// Формируем SQL-запрос на извлечение записей
$query = "SELECT * FROM download_files
LIMIT $first, $pnumber";
$dmn = mysql_query($query);
if(!$dmn) exit("Ошибка при обращении к таблице");
// Если имеется хотя бы одна запись - выводим таблицу
if(mysql_num_rows($dmn) > 0)
{
echo "<table>
<tr>
<td>mytitle</td>
<td>disc</td>
<td>link</td>
<td>size</td>
<td>date</td>
</tr>";
while($files = mysql_fetch_array($dmn))
{
echo "<tr>
<td>$files[mytitle]</td>
<td>$files[disc]</td>
<td>$files[link]</td>
<td>$files[size]</td>
<td>$files[date]</td>
</tr>";
}
echo "</table>";
}
// Постраничная навигация
pager($page, $total, $pnumber, $page_link, "&order=$_GET[order]");
// Функция постраничной навигации
// $page - текущая страница, передаётся через GET-параметр page
// $total - общее число позиций в базе данных
// $pnumber - число позиций на одной странице
// $page_link - число ссылок слева и справа от выбранной страницы
function pager($page, $total, $pnumber, $page_link, $parameters)
{
// Вычисляем число страниц в системе
$number = (int)($total/$pnumber);
if((float)($total/$pnumber) - $number != 0) $number++;
// Проверяем есть ли ссылки слева
if($page - $page_link > 1)
{
echo "<a href=$_SERVER[PHP_SELF]?page=1{$parameters}> <nobr>[1-$pnumber]</nobr></a> <em class=currentpage><nobr> ... </nobr> </em> ";
// Есть
for($i = $page - $page_link; $i<$page; $i++)
{
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
else
{
// Нет
for($i = 1; $i<$page; $i++)
{
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
// Проверяем есть ли ссылки справа
if($page + $page_link < $number)
{
// Есть
for($i = $page; $i<=$page + $page_link; $i++)
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] </nobr> </em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
echo "<em class=currentpage><nobr> ... </nobr> </em> <a href=$_SERVER[PHP_SELF]?page=$number{$parameters}> <nobr>[".(($number - 1)*$pnumber + 1)."-$total]</nobr></a> ";
}
else
{
// Нет
for($i = $page; $i<=$number; $i++)
{
if($number == $i)
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-$total] </nobr></em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}>[".(($i - 1)*$pnumber + 1)."-$total]</a> ";
}
else
{
if($page == $i)
echo "<em class=currentpage><nobr> [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] </nobr> </em>";
else
echo " <a href=$_SERVER[PHP_SELF]?page=$i{$parameters}> <nobr>[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</nobr></a> ";
}
}
}
echo "<br><br>";
}
?>
|
Для его успешного функционирования требуется конфигурационный файл config.php, который устанавливает соединение с базой данных:
<?php
// сейчас выставлен сервер локальной машины
$dblocation = "localhost";
// Имя базы данных, на хостинге или локальной машине
$dbname = "for";
// Имя пользователя базы данных
$dbuser = "root";
// и его пароль
$dbpasswd = "";
// Устанавливаем соединение с базой данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
exit( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) ) {
exit( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
}
// Определяем версию сервера
$query = "SELECT VERSION()";
$ver = mysql_query($query);
if(!$ver) exit("Ошибка при определении версии MySQL-сервера");
$version = mysql_result($ver, 0);
list($major, $minor) = explode(".", $version);
// Если версия выше 4.1 сообщаем серверу, что будем работать с
// кодировкой cp1251
$ver = $major.".".$minor;
if((float)$ver >= 4.1)
{
mysql_query("SET NAMES 'cp1251'");
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.03.2006 в 13:20)
| | Спасибо, всё работает идеально! | |
|
|
|
|
|
|
|
для: Gnusmas
(10.03.2006 в 01:28)
| | А немогли бы Вы мне подсказать как мне зделать так чтоб он непоказывал страницы так [1-1]
а чтоб показывал их вот так 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20. | |
|
|
|
|
|
|
|
для: Gnusmas
(17.03.2006 в 03:46)
| | Везде, где видете подстроку [".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] - заменяйте её на [".$i."] | |
|
|
|
|
|
|
|
для: cheops
(17.03.2006 в 12:41)
| | Спасибо! Всё работае.
А как мне зделать чтоб сортировалось по дате добовления.
Я пытался зделать так
$query = "SELECT COUNT(*) FROM download_files ORDER BY date desc";
|
И так
$query = "SELECT * FROM download_files
LIMIT $first, $pnumber ORDER BY date desc ";
|
Но нечего непалучается(( | |
|
|
|
|
|
|
|
для: Gnusmas
(17.03.2006 в 14:37)
| | $query = "SELECT * FROM download_files ORDER BY date desc LIMIT $first, $pnumber "; | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 14:53)
| | О! Всё работает. Спасибо. | |
|
|
|
|