Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничный вывод: вопросы, Маркировочный список, PHP_SELF и пр. 
:(
    Опции темы
Lloyd
Дата 16.2.2004, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 19.7.2003

Репутация: нет
Всего: нет



Cоздал как мог постраничный вывод списка статей, который представляет собой маркировочный список:

Код
function display_article_list() {
global $link, $show, $PHP_SELF, $section;

$row_count_by_page = 5; // число записей на страницу
if(!$show) $show = 0;

// выбираем записи из БД
$result = mysql_query("
SELECT articles.*
GROUP BY article_date
ORDER BY article_date DESC
LIMIT $show,$row_count_by_page
", $link);

$rc = mysql_num_rows($result);

// выводим результат в виде маркировочного списка 1 2 3...
echo "<ol>";
while ($row = mysql_fetch_array($result)) {
   echo "<li>".$row['article_title']."<br>";
   echo $row['article_date']."<br>";
   echo $row['article_description']."</li>";
}
echo "</ol>";

// выводим навигацию
if($show > 0 ) {
$back_row = ($show > $row_count_by_page) ? ($show-$row_count_by_page) : 0;
echo "<a href='index.php?section=".$section."&".$PHP_SELF."show=".$back_row."'>Назад</a> ";
}
if($rc == $row_count_by_page)
echo "<a href='index.php?section=".$section."&".$PHP_SELF."show=".($show+$row_count_by_page)."'>Вперёд</a>";

}


Скрипт работает, но появились некоторые проблемы:

1) При выводе следующих допустим 10-ти статей маркировочный список не продолжается, а начинается заново с единицы, что есть очень некрасиво. Оно и понятно - ведь каждый раз вывод рез-тов происходит заново - как от этого избавиться?

2) Хотелось бы вывод навигации оформить в виде отдельной функции для его мобильности. Но тогда $PHP_SELF который передает значение текущему скрипту, передает его в функцию навигации а не в функцию выборки где он нужен. Можно ли как-то указать, чтобы значение передавалось именно в function display_article_list() ?

3) Как подсчитать и вывести ссылки не в виде "Вперед"-"Назад" а виде "[1] 2 3 4 " ? (т.е. вывести все кол-во страниц в виде номеров)?

Спасибо.
PM MAIL   Вверх
Secandr
Дата 16.2.2004, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 2
Всего: 39



1) Читай документацию по HTML про <ol>

2) Можно подробнее.

3) Нужно сделать ещё одни запрос
SQL
SELECT count(articles.id) FROM articles GROUP BY id

id - это что-то уникальное.
А потом дело техники: делим полученое значение на число записей на странице и всё.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.