Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с построчной навигацией
Форумы портала PHP.SU » Разное » Обсуждение статей » Проблема с построчной навигацией

Страниц (1): [1]
 

1. igortik - 10 Ноября, 2006 - 23:48:43 - перейти к сообщению
Приветствую!

Прошу помочь знатоков, как сделать построчную навигацию на сайте.

Прочел статью Постраничная навигация на PHP (_http://www.php.su/articles/?cat=examples&page=062), но мне приходит ответ:

Fatal error: Unsupported operand types
и ругается на тсроку:

$total = intval (($posts - 1) / $num) + 1;

п.с. я просто взял и вставил приведенный в статье код на страничку, имена полей в базе и в коде целиком соответствуют. Я просто не знаю что мне уже делать, без построчной навигации (постройка сайта на "1 странице") нереально реализовать то, что я хочу, т.к. нужно будет делать отдельно каждую страницу.

Прошу Вашей помощи, может есть еще какй-либо метод выборки из БД с автоматическим созданием линков на вызываемые из самих себя страницы.

Прошу простить меня за неточность в терминологии, я только начинаю.

С уважением, Игорь
Огорчение\n\n(Добавление)
изменил имя таблицы в коде на ту, которой у меня нет и ошибка исчезла. На странице появилось просто число 1 (номер строки). Думаю, может что-то не так с таблицей.

ОгорчениеОгорчениеОгорчение

я даже не знаю какие параметры какому полю правильно нужно присвоить.. Огорчение
2. f0rm4t - 14 Ноября, 2006 - 13:30:41 - перейти к сообщению
Ты имел в виду "по страничную навигацию"?
Что ты хочешь использовать в качестве хранилища информации? БД или файлы?
3. murich - 12 Августа, 2007 - 22:49:35 - перейти к сообщению
Здраствуйте. Человек сформулировал свою проблему четко. Он делает вывод данныХ из MySQL, как сказанно в статье, находящейся по адресу http://www.php.su/articles/?cat=...les&page=062
У меня такая же проблема как и у него:

Fatal error: Unsupported operand types in /home/lamers/public_html/lamirst va.php on line 14

В строке этой написанно:
PHP:
скопировать код в буфер обмена
  1.  $total = intval(($posts - 1) / $num) + 1;  // Находим общее число страниц


Мне бы тоже не помешала помошь. Может подскажите, в чем дело?
4. valenok - 12 Августа, 2007 - 22:59:26 - перейти к сообщению
Да.
Дело в том что для новых вопросов создают новые темы,
и ещё дело в том что php код следует обрамлять в теги [php][/php]
Всё это указано в правилах.\n\n(Добавление)
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);

заменить на

$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_result($result,0,0);
5. evgenijj - 13 Августа, 2007 - 08:26:14 - перейти к сообщению
murich пишет:
Здраствуйте. Человек сформулировал свою проблему четко. Он делает вывод данныХ из MySQL, как сказанно в статье, находящейся по адресу http://www.php.su/articles/?cat=...les&page=062
У меня такая же проблема как и у него:

Fatal error: Unsupported operand types in /home/lamers/public_html/lamirst va.php on line 14

В строке этой написанно:
$total = intval(($posts - 1) / $num) + 1; // Находим общее число страниц

Мне бы тоже не помешала помошь. Может подскажите, в чем дело?


http://phpfaq[dot]ru/debug
Цитата:

Надо проконтролировать на каждом из участков - все ли переменные имеют то значение, которое ожидается.
Программа ведь работает с переменными.
Как проверить?
Выводить все используемые переменные на экран! И визуально контролировать их содержимое.
Всего-то лишь написать проблемных местах var_dump($var) и выяснится, что переменная-то пустая!
И уже можешь пойти на форум не с вопросом "у меня вот код на 100 строк, где ошибка?", а "я написал функцию, но почему-то, когда обращаюсь в ней к переменным, они все пустые". или "из формы не передаются переменные".


Fatal error: Unsupported operand types
Неподдерживаемый тип операнда

Что делать? ОТВЕТ:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo $posts."<br/>";
  3. echo $num."<br/>";
  4. $total = intval(($posts - 1) / $num) + 1;
  5.  

И получим, что $posts у нас оказывается array
6. murich - 13 Августа, 2007 - 09:19:25 - перейти к сообщению
evgenijj
спасибо за подсказку.
valenok
$posts = mysql_fetch_row($result); -не катит Улыбка, зато катит mysql_num_rows


$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);

не нужно заменять на
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_result($result,0,0);

Эти 2 строки нужно заменить на

$result = mysql_query("SELECT * FROM news");
$posts = mysql_num_rows($result);

и тогда все работает. А вопрос то старый, вот я и решил новую тему не создавать. Много тем по одному и тому же вопросу- хлам, однако.
7. evgenijj - 13 Августа, 2007 - 09:48:09 - перейти к сообщению
murich пишет:

valenok
$posts = mysql_fetch_row($result); -не катит Улыбка, зато катит mysql_num_rows

$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_row($result);

не нужно заменять на
$result = mysql_query("SELECT COUNT(*) FROM post");
$posts = mysql_fetch_result($result,0,0);

Эти 2 строки нужно заменить на
$result = mysql_query("SELECT * FROM news");
$posts = mysql_num_rows($result);

valenok здесь просто опечатался - он имел виду функцию
$posts = mysql_result($result, 0, 0);

И на самом деле его вариант лучше - он будет работать гораздо быстрее
8. murich - 13 Августа, 2007 - 11:45:16 - перейти к сообщению
Сделал. Быстрее это хорошо Улыбка

 

Powered by ExBB FM 1.0 RC1