Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает intval ( )
 
 автор: Hin   (05.05.2006 в 17:57)   письмо автору
 
 

Почему-то ругается : Fatal error: Unsupported operand types in z:\home\test1.ru\www\index3.php on line 11.
Хотя в другом скрипте все работает нормально. Хотел сделать постраничную навигацию, на примере статьи на сайте. Но вот встал в ступор.

   
 
 автор: XPraptor   (05.05.2006 в 18:08)   письмо автору
 
   для: Hin   (05.05.2006 в 17:57)
 

Строку кода покажи, а лучше еще и ту, где получется значение которое в инт переводишь. Тут не телепаты.

   
 
 автор: Trianon   (05.05.2006 в 18:26)   письмо автору
 
   для: Hin   (05.05.2006 в 17:57)
 

Наверное на вход intval подан массив...
А в принципе XPraptor прав.

   
 
 автор: Hin   (05.05.2006 в 18:39)   письмо автору
 
   для: 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))
?> 

   
 
 автор: XPraptor   (05.05.2006 в 18:40)   письмо автору
 
   для: Hin   (05.05.2006 в 18:39)
 

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

   
 
 автор: XPraptor   (05.05.2006 в 18:45)   письмо автору
 
   для: 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);
теперь должно работать.

   
 
 автор: Trianon   (05.05.2006 в 18:47)   письмо автору
 
   для: Hin   (05.05.2006 в 18:39)
 


$posts = mysql_result($result, 0); 

   
 
 автор: Hin   (05.05.2006 в 18:56)   письмо автору
 
   для: Trianon   (05.05.2006 в 18:47)
 

Все заработало :) спасибо. А может есть у кого лучший алгоритм разбития на страницы??

   
 
 автор: XPraptor   (06.05.2006 в 11:46)   письмо автору
 
   для: Hin   (05.05.2006 в 18:56)
 

Тут вот в теме "Постраничная навигация по сайту" только что выложил пример навигации для товарисча, он правда специфический, но исправить его на раз.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования