Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничный вывод, помогите дописать функцию 
:(
    Опции темы
hex
Дата 20.12.2005, 20:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть функция построничного вывода! Информация тянется с базы Mysql.
Всего получается разбивка на 3 страницы такого типа
www.example.com/test.php?page=1
www.example.com/test.php?page=2
www.example.com/test.php?page=3

Когда я в адреснкю строку ввожу www.example.com/test.php?page=26 то выходит пустую страницу
Есть какие то варианты, что бы при введении в (адресс) несуществующей страницы типо www.example.com/test.php?page=26
выводило последнюю страницу?

Вот сам код:

Код

<?php
function page()
{
    if(empty($_GET["page"])){
        $page = 0;
    } else {
      if(!is_numeric($_GET["page"])) die("Неправильный формат номера страницы!");
        $page = $_GET["page"];
    }
   return $page;
}
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 _test") or die(mysql_error());
   $count = mysql_fetch_array($count);
   $count = $count[0];
   $pages = $count/$onpage;
   
   for($i=0;$i<$pages;$i++)
   {
       if($i==$page){
           $return.="<span style='color:#ff0000;font-size: 12px'>&nbsp;".($i+1)."&nbsp;</span>";
       } else {
           $return.="<span style='color:#ff0000;font-size: 12px'>&nbsp;<A HREF=\"?page=".$i."\">".($i+1)."</A>&nbsp;</span>";
       }
   }
   return $prev.$return.$next;
}
$onpage = 20; // записей на страницу
$table = "_test"; // из какой таблицы
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test"); // выбор БД
$page = page(); // определяем страницу
$result = sql_query($onpage, $page, $table); // sql - запрос
echo"<td colspan='2' bgcolor='#ffffff'>"; // определим навигацию
$navigation = navigation($onpage, $page, $table);
echo" страницы: $navigation</span>";
echo"</td>";
while($data = mysql_fetch_array($result)){
      echo"<TBODY> 
   <table border=0>
   <tr><td >&nbsp; <img src=box.gif>&nbsp;$data[test]</span></td>";
   echo" <td bgcolor='#ffffff'>$data[test1]</span></td></tr>";
}
echo"<td colspan='2' bgcolor='#ffffff'></span>"; 
$navigation = navigation($onpage, $page, $table);
echo страницы: $navigation</span>";
echo"</td></tr></table>";
mysql_close(); ?>

  Вверх
Mal Hack
Дата 20.12.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



1. В запросе надо сортировку делать.
2. Можено заранее получить кол-во записей всех, которые есть в таблице и от этого плясать.
PM ICQ   Вверх
hex
Дата 20.12.2005, 21:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











как это сделать?
  Вверх
Mal Hack
Дата 20.12.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(hex @ 20.12.2005, 21:51)
как это сделать?

Что именно?
PM ICQ   Вверх
PARROT
Дата 20.12.2005, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



Код

$catin=mysql_query("select id_texnika FROM texnika where id_texnika=$id") or die(mysql_error());
$row=mysql_fetch_row($catin);
        $cate=$row[0];
 if($cate==""){//если страница равна нулю, то переводим на страницу по умолчанию
        header('location: index.php?page=texnika');
        exit;
       }



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
hex
Дата 20.12.2005, 22:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











2. Можено заранее получить кол-во записей всех, которые есть в таблице и от этого плясать.

  Вверх
Mal Hack
Дата 20.12.2005, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(hex @ 20.12.2005, 22:40)
2. Можено заранее получить кол-во записей всех, которые есть в таблице и от этого плясать.

SELECT COUNT ...
PM ICQ   Вверх
hex
Дата 21.12.2005, 10:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











И дальше как?


Код

$count = mysql_query("SELECT COUNT(*) FROM _test") or die(mysql_error());
   $count = mysql_fetch_array($count);
   $count = $count[0];
   $pages = $count/$onpage;

  Вверх
-=Ustas=-
Дата 21.12.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



У тебя в функциях navigation и sql_query используются SQL-запросы. Это не оптимально, т.е. не являются универсальными функциями. Лучше функцию скрола писать так, чтоб она не знала о каких-то там SQL-запросах и таблицах. Всё, что нужно этой функции в качестве передаваемых аргументов, это:
1. Общее количество всех записей.
2. Количество записей на страницу.
3. Номер текущей страницы.
4. Необязательный аргумент - это $_SERVER['QUERY_STRING'], в случае его присутствия добавляется перед номером страницы, воизбежания нарушения урл-а.
Алгоритм на самом деле прост до ужаса... smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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