|
|
|
| Вот какая проблемка. Есть простенький форум, решил в него вставить постраничный вывод, на первой странице все работает нормально, ответы выводятся, а на последующих отеты не выводятся, в чем ошибка ?
Привожу код, все лишнее выбросил, постарался оставить только РНР код
<?
$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(0, 0, 0, $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++;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Valeri
(21.02.2005 в 08:47)
| | После формирования SQL-запроса
<?php
$result=mysql_query("SELECT * FROM $t WHERE ans=".$ref." ORDER BY id desc limit ".$page.", ".$max);
?>
|
поставьте строку
Что выводится на второй странице? | |
|
|
|
|
|
|
|
для: cheops
(21.02.2005 в 09:39)
| | Вообще что то не понятное, выводит вот что
Resource id #4
и какое бы значение $max я бы не ставил все равно выводит
Resource id #4 | |
|
|
|
|
|
|
|
для: Valeri
(21.02.2005 в 12:23)
| | Это значит, что запрос выполнен.
Лучше выведите содержание запроса – тогда будет виднее.
<?
echo "SELECT * FROM $t WHERE ans=".$ref." ORDER BY id desc limit ".$page.", ".$max;
?>
|
| |
|
|
|
|
|
|
|
для: 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, они просто игнорируются. | |
|
|
|
|
|
|
|
для: Valeri
(21.02.2005 в 14:46)
| | > а после листинга она почему то не хочет получает читать те записи в которых ans!=0
У вас же нет запроса, где ans!=0. Он у вас всегда равен нулю. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(21.02.2005 в 15:28)
| | что-то я никак не соображу и как это тогда исправить ? | |
|
|
|