|
|
|
| Почему-то ругается : Fatal error: Unsupported operand types in z:\home\test1.ru\www\index3.php on line 11.
Хотя в другом скрипте все работает нормально. Хотел сделать постраничную навигацию, на примере статьи на сайте. Но вот встал в ступор. | |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 17:57)
| | Строку кода покажи, а лучше еще и ту, где получется значение которое в инт переводишь. Тут не телепаты. | |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 17:57)
| | Наверное на вход intval подан массив...
А в принципе XPraptor прав. | |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 17:57)
| | Я же написал, из статьи
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Переменная хранит число сообщений выводимых на станице
$num = 25;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT COUNT(*) FROM post");
$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 post LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>
|
| |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 18:39)
| | $posts = mysql_fetch_row($result); скорее всего тут имелось ввиду:
$posts = mysql_num_rows($result);
Потому, как логически нельзя из массива вычесть один, особенно если он текстовый. | |
|
|
|
|
|
|
|
для: XPraptor
(05.05.2006 в 18:40)
| | А хотя, здесь вообще не грамотно написан скрипт. Странно, как он в примеры попал.
Запрос типа:
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);
В принципе глючный, нужно обязательно получать поле которое вернет счетчик. Так напиши вместо двух строк выше:
$result = mysql_query("SELECT COUNT(*) AS cnt_record FROM post");
$row=mysql_fetch_object($result);
$posts=$row->cnt_record;
mysql_free_result($result);
теперь должно работать. | |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 18:39)
| |
$posts = mysql_result($result, 0);
|
| |
|
|
|
|
|
|
|
для: Trianon
(05.05.2006 в 18:47)
| | Все заработало :) спасибо. А может есть у кого лучший алгоритм разбития на страницы?? | |
|
|
|
|
|
|
|
для: Hin
(05.05.2006 в 18:56)
| | Тут вот в теме "Постраничная навигация по сайту" только что выложил пример навигации для товарисча, он правда специфический, но исправить его на раз. | |
|
|
|