Постраничный вывод ) Глюк(...

  • Автор темы premiums
  • Дата начала

premiums

Guest
Постраничный вывод ) Глюк(...

У меня есть код постраничного вывода новостей но с глюком. при нажатии к примеру на стр. № 2 то открывается 3_я стр. Помогите разобраться.

PHP:
print  "<table align=center><tr>";
$q="SELECT count(*) FROM clan_news";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];

$num_videos=ceil($total_rows/$per_video);

for($i=1;$i<=$num_videos;$i++) {
  if ($i-1 == $video) {
    echo "<td width=5style='border: 1px solid #cccccc'>{$i} </td>";
  } else {
    echo <<<EOF
    <td width=5  bgcolor=#F0F1F3  style='border: 1px solid #cccccc'><a  href="{$script}&video={$i}">{$i}</a> </td>
EOF;
  }
}
print  "</tr></table>";
 

premiums

Guest
Все тоже самое и осталось.
Вот посмотрите http://clansite.ru/index.php?doc_id=news
 

dilan

Новичок
посмотрел нормально :)
на какой номер страничку нажимаю та и активируется.
 

premiums

Guest
http://clansite.ru/index.php?doc_id=news Как заходишь сюда - открывается первая, если нажать на цифру 1 то откроется вторая на 2 то третья и т.д. а если прописать 0 то первая. Вот в чем глюк.
 

dilan

Новичок
А где у тебя определяется какой content к какому $video?
 

premiums

Guest
$per_video=2;
$start=abs($video*$per_video);
$result = mysql_query( "SELECT * FROM clan_news WHERE checkbox = '1' ORDER BY id DESC LIMIT {$start},{$per_video}" , $dbi );
 

dilan

Новичок
PHP:
if(!isset($_GET['video'])) $video = 1; else $video=intval($_GET['video']);

$per_video=2;
$start=abs(($video-1)*$per_video);
$result = mysql_query( "SELECT * FROM clan_news WHERE checkbox = '1' ORDER BY id DESC LIMIT {$start},{$per_video}" , $dbi );


print  "<table align=center><tr>";
$q="SELECT count(*) FROM clan_news";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];

$num_videos=ceil($total_rows/$per_video);

for($i=1;$i<=$num_videos;$i++) {
  if ($i == $video) {
    echo "<td width=5style='border: 1px solid #cccccc'>{$i} </td>";
  } else {
    echo <<<EOF
    <td width=5  bgcolor=#F0F1F3  style='border: 1px solid #cccccc'><a  href="index.php?video={$i}">{$i}</a> </td>
EOF;
  }
}
print  "</tr></table>";
 

SiMM

Новичок
dilan
Notice: Undefined variable: video при любом значении $_GET['video']
 

premiums

Guest
SiMM
)))
dilan
А while ты забыл????? Или ты думаешь 2 запроса без вывода работать будут???

-~{}~ 08.11.05 15:36:

dilan
Практически работает - вот только при заходе на новости - появляется не 1 а вторая стр. короче сдвиг
 

premiums

Guest
dilan
Я глюк схватил)))) Все разобрался
Выведу пример. Тему можно закрывать - СПАСИБО!
PHP:
<?
$script = "index.php?doc_id=news";


	//Вывод короткой новости
if ( ! isset($_GET['fullnews']) )
	{
if(!isset($_GET['video'])) $video = 1; else $video=intval($_GET['video']);
		$per_video=6;
		$start=abs(($video-1)*$per_video);
		$result = mysql_query( "SELECT  * FROM TBL  WHERE  checkbox = '1'  ORDER BY id DESC LIMIT {$start},{$per_video}" , $dbi );
	
	while ( $row = mysql_fetch_assoc ( $result ) )
	
	{
    $row['smalltext'] = substr($row['smalltext'],0,250); //Количество символов в тексте
		$row = array_map ( 'stripslashes', $row );
		

		?>

НОВОСТИ

<?

	}

	
print  "<table align=center><tr>";
$q="SELECT count(*) FROM clan_news";
$res=mysql_query($q);
$row=mysql_fetch_row($res);
$total_rows=$row[0];

$num_videos=ceil($total_rows/$per_video);

for($i=1;$i<=$num_videos;$i++) {
  if ($i == $video) {
    echo "<td width=5style='border: 1px solid #cccccc'>{$i} </td>";
  } else {
    echo <<<EOF
    <td width=5  bgcolor=#F0F1F3  style='border: 1px solid #cccccc'><a  href="{$script}&video={$i}">{$i}</a> </td>
EOF;
  }
}
print  "</tr></table>";
	
}
?>
-~{}~ 08.11.05 15:43:

Фанат

Я от туда и взял)))
 

dilan

Новичок
зачем мне твой while?
Вот самое главное
PHP:
$start=abs(($video-1)*$per_video);
и
PHP:
for($i=1;$i<=$num_videos;$i++) {
а уж расположить я думаю ты и сам сможешь...

У тебя начинался вывод страниц был на 1 больше т.к. ты
$start=abs(($video-1)*$per_video); не сделал....

Этот блок я для этого и вставил в код чтобы ты это понял!!!

PHP:
$per_video=2;
$start=abs(($video-1)*$per_video);
$result = mysql_query( "SELECT * FROM clan_news WHERE checkbox = '1' ORDER BY id DESC LIMIT {$start},{$per_video}" , $dbi );
-~{}~ 08.11.05 15:45:

ну вот и разобрались :)
Счастливо!!!
 

premiums

Guest
Фанат

Да я знаю - спс. Это от старого кода осталось.

dilan
Спасибо - я заметил что ты изменил.

NOT NULL
Нашел где написать первое сообщение... А ты случайно не флудер???

Фанат закрой плз тему
 

premiums

Guest
Как написано что фон я взял у вас ..... я взял с гугле image.
 
Сверху