Постраничный вывод,не выводиться... (PHP)

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-02-28 15:39:26

Собсно пытаюсь данные из таблици разбить на странички,но пока как то без успешно, скрипт взят отсюда http://php.su/articles/?cat=examples&page=062
в моем исполнение выглядит так:

Код: Выделить всё

<?php

include "../config.php";
include "../theme/header.php";

// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM students");
$posts = mysql_fetch_row($result);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
  if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM students LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result)) 

################################################################################
	
$result=mysql_query("select * from students");
while($array=mysql_fetch_array($result))
{
	// Выясняем скрыт каталог или нет, согласно этому выводим
    // соответствующую управляющую ссылку
    if($array['hide'] == 'show')
    {
        $strhide = "<center><a target=_blank href=anketa.php?id_student=".$array['id_student'].">".$array['fio']."</a></center>";
    } 
    else
    {
        $strhide = "";
    }
	echo "$strhide";
}

#################################################################################

// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./page?page=1><<</a>
                               <a href= ./page?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./page?page='. ($page + 1) .'>></a>
                                   <a href= ./page?page=' .$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./page?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./page?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./page?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./page?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

include "../theme/footer.php";

?>
Сейчас ругается на эту строку $total = intval(($posts - 1) / $num) + 1; --> Fatal error: Unsupported operand types in Z:\home\lab\soft\students\show.php on line 14, понять не могу что ему надо... ХЕЛП плиз, ПХП только начал изучать, секция заключенная в решетку моя,я ее еще не переписал

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-02-28 15:40:58

Я так понимаю он не поддерживает оператор intval, но не знаю что должно быть вместо него

Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-02-28 16:18:23

разобрался с ошибкой, дело было в массиве $posts = mysql_fetch_row($result); сделал так $posts = mysql_num_rows($result);,ошибок не вылетает, но навигации нет...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение zg » 2009-02-28 16:51:11

Sun писал(а):понять не могу что ему надо...
любви, уважения и ласки, чего ж ещё -)))
Sun писал(а):скрипт взят отсюда
задачу неверно ты для себя поставил, она решается в три этапа:
1. определение общего числа записей
2. определение количества страниц
3. вывод страниц и собственно список записей на страницу

на данный момент у тебя скрипт... несколько сложнее, что пока не требуется.

Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-02-28 17:16:26

Первые два условия сделал,а с третьим че то затрудняюсь.

Код: Выделить всё

<?php

include "../config.php";

# Выбираем нужную нам таблицу
$result=mysql_query("select * from students");

# 1 задача: определяем общие число записей в БД
$total_posts = mysql_num_rows($result);
echo "В базе содержится $total_posts строк.";

# 2 задача: определение количества страниц
$posts = 5;	// количество выводимых сообщений
$pages = ceil($total_posts/$posts);	// вычесляем количество страниц
echo "<br>Количество страниц $pages.";

# 3 задача: вывод страниц и список записей


?>

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение zg » 2009-02-28 17:39:40

держи -)

Код: Выделить всё

<?php

include "../config.php";

// Текущая страница
$cur_page = isset($_GET['page']) ? (int) $_GET['page'] : 0;

# 1 задача: определяем общие число записей в таблице студентов
$result = mysql_query("select count(*) from students");
$total  = array_pop(mysql_fetch_assoc($result));

echo "В базе содержится $total строк.";

# 2 задача: определение количества страниц
$posts_per_page = 5;                              // количество выводимых сообщений
$pages          = ceil($total/$posts_per_page);   // вычесляем количество страниц

echo "<br>Количество страниц $pages.";

// Вывод списка страниц
if ( $pages > 1 )
{
   echo '<br>Страницы: ', PHP_EOL;
   
   for ( $i = 0; $i < $pages; ++ $i )
      echo '<a href="?page=', $i ,'">', $i + 1, '</a>', PHP_EOL;
}

# Вывод списока записей
# -----------------------------
// Выборка записей
$result = mysql_query('SELECT * FROM students LIMIT '. ($cur_page * $posts_per_page) .', '. $posts_per_page);

// Вывод записей
echo '<br>Список записей<br>', PHP_EOL;
while ( $row = mysql_fetch_assoc($result) )
{
   echo '<pre>';
   print_r($row);
   echo '</pre>';
}

?>

Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-02-28 17:52:38

Спс,можно вопрос? А что означают переменные в этой строке :

Код: Выделить всё

$result = mysql_query('SELECT * FROM students LIMIT '. ($cur_page * $posts_per_page) .', '. $posts_per_page);

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение zg » 2009-02-28 18:58:37

выбираются данные с определённой позиции и лимитированное количество


zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение zg » 2009-03-01 19:47:57

в виду того, что данная тема довольно интересна написал небольшую статью http://anton-pribora.ru/articles/php/php-pages-list/

Аватара пользователя
Sun
прапорщик
Сообщения: 496
Зарегистрирован: 2008-07-14 18:27:14
Откуда: Красноярск
Контактная информация:

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение Sun » 2009-03-02 14:28:17

Громаднейшие человеческое СПС! :smile: то что надо ща буду вкуривать!

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Постраничный вывод,не выводиться... (PHP)

Непрочитанное сообщение zg » 2009-03-02 14:48:58

вопросы будут, спрашивай, поможем чем сможем -)