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

Форум PHP

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

 

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

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

тема: Не выводятся ответы (древовидный форум)
 
 автор: Valeri   (21.02.2005 в 08:47)   письмо автору
 
 

Вот какая проблемка. Есть простенький форум, решил в него вставить постраничный вывод, на первой странице все работает нормально, ответы выводятся, а на последующих отеты не выводятся, в чем ошибка ?
Привожу код, все лишнее выбросил, постарался оставить только РНР код

<?
$t
="forum";
$max=10;
if ((!isset (
$page)) or ($page == '')) $page 0;
$res1 mysql_query("select * from $t WHERE ans=0 ORDER BY id desc limit 30");
$ob mysql_num_rows($res1);
function 
ShowTree$ref$lvl$mssge$t ) {
global 
$ob,$max,$page;
$result=mysql_query("SELECT * FROM $t WHERE ans=".$ref." ORDER BY id desc limit ".$page.", ".$max);
$lvl++;
if (
mysql_num_rows($result) > 0) {
echo 
"<UL>";
while (
$row mysql_fetch_array($result) ) {
$ID1 $row["id"];
$topic $row["topic"];
$autor $row["author"];
$date $row["date"];
echo 
"$topic $author $date<br>";
ShowTree($ID1$lvl$mssge$t);
$lvl--;
}
echo 
"</UL>";
}
}
echo 
"<html><head><title>Форум</title>
</head>
<body>"
;
ShowTree(000$t);
if (
$ob>$max){
$k 1;$ff 0;
while (
$ob>0){
echo 
"<A href = \"forum.php?&page = $ff\">Страница $k</A>";
$ob $ob-$max;
$ff $ff+$max;
$k++;
}
}
?>

   
 
 автор: cheops   (21.02.2005 в 09:39)   письмо автору
 
   для: Valeri   (21.02.2005 в 08:47)
 

После формирования SQL-запроса
<?php
$result
=mysql_query("SELECT * FROM $t WHERE ans=".$ref." ORDER BY id desc limit ".$page.", ".$max);
?>

поставьте строку
<?php
  
echo $result;
?>

Что выводится на второй странице?

   
 
 автор: Valeri   (21.02.2005 в 12:23)   письмо автору
 
   для: cheops   (21.02.2005 в 09:39)
 

Вообще что то не понятное, выводит вот что

Resource id #4

и какое бы значение $max я бы не ставил все равно выводит

Resource id #4

   
 
 автор: glsv (Дизайнер)   (21.02.2005 в 13:27)   письмо автору
 
   для: Valeri   (21.02.2005 в 12:23)
 

Это значит, что запрос выполнен.
Лучше выведите содержание запроса – тогда будет виднее.

<?
  
echo "SELECT * FROM $t WHERE ans=".$ref." ORDER BY id desc limit ".$page.", ".$max;
?>

   
 
 автор: Valeri   (21.02.2005 в 14:46)   письмо автору
 
   для: glsv (Дизайнер)   (21.02.2005 в 13:27)
 

если я ставлю $max=4 то выводит вот что

SELECT * FROM forum WHERE ans=0 ORDER BY id desc limit 0, 4

вторая страница

SELECT * FROM forum WHERE ans=0 ORDER BY id desc limit 4, 4

третья страница

SELECT * FROM forum WHERE ans=0 ORDER BY id desc limit 8, 4

вообще получается вот что, в БД есть два поля id и ans
в id заносится номер по порядку, а в ans число указывающее к какому номеру id эта запись пренадлежит, тоесть для примера

id ans
1 0
2 1
3 2

если 0 то это оснавная запись, вторая ответ на id 1, третья ответ на id 2

на первой странице выводится все нормально, а после листинга она почему то не хочет получает читать те записи в которых ans!=0, они просто игнорируются.

   
 
 автор: glsv (Дизайнер)   (21.02.2005 в 15:28)   письмо автору
 
   для: Valeri   (21.02.2005 в 14:46)
 

> а после листинга она почему то не хочет получает читать те записи в которых ans!=0
У вас же нет запроса, где ans!=0. Он у вас всегда равен нулю.

   
 
 автор: Valeri   (21.02.2005 в 16:36)   письмо автору
 
   для: glsv (Дизайнер)   (21.02.2005 в 15:28)
 

что-то я никак не соображу и как это тогда исправить ?

   
Rambler's Top100
вверх

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