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

Форум MySQL

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

 

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

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

тема: Постраничный вывод изображений
 
 автор: Klavier   (03.04.2008 в 09:59)   письмо автору
 
 

Здравствуйте столкнулся с небольшой проблемкой, надеюсь на вашу помощь)))
Есть код выводящий на страницу по 8 изображений,с постраничным выводом,дело в том, что если на последней странице остается не 8 изображений и например 3, то выводятся не существующие изображения, как убрать эти не существующие изображения????
Ссылочка http://fanatika.ru/3d_group.php?folder=Bike&page=26
Заранее спасибо!!!
<?php
include "3d_config.php";
$nameget=$_GET['folder'];
$ath mysql_query("select * from graphic where `folder` like '$nameget';");
if(
$ath)
{
  
$author mysql_fetch_array($ath);
  echo 
'<title>3D-'.$author['folder'].' Graphic </title>';
}


$num 8;
$page $_GET['page'];  
$result mysql_query("select COUNT(*) from graphic where `folder` like '$nameget' ORDER BY `id` asc ;");  
$posts mysql_result($result00);
$total intval(($posts 1) / $num) + 1;  
$page intval($page);  
if(empty(
$page) or $page 0$page 1;  
  if(
$page $total$page $total;  
$start $page $num $num;  
$result mysql_query("SELECT * from graphic where `folder` like '$nameget' order by `id` asc LIMIT $start$num;");  
while ( 
$postrow[] = mysql_fetch_array($result))  



echo 
"<table width='100%' height='100% border='0' bordercolor=Dimgray bgcolor= '#080808' cellspacing='5' cellpadding='5'>"
  
$final 0
  while(
$postrow[] = mysql_fetch_array($result)) 
  if(
$final == 0) echo "<tr>";
for(
$i 0$i $num$i++)
{  
 echo 
'<td align="center" valign="bottom"><a href="'.'3d_id.php?id='.$postrow[$i]['id'].'" title="'.$postrow[$i]['link'].'" target="_blank"><IMG onmouseover=nereidFade(this,100,90,90) style="FILTER: alpha(opacity=80)" onmouseout=nereidFade(this,60,5,5) src="3d graphic/_thumb/'.$postrow[$i]['folder'].'/'.$postrow[$i]['img'].'" alt="'.$postrow[$i]['alt'].'" ></a><br><font size="-2" face="Arial, Helvetica, sans-serif">Views : '.$postrow[$i]['count'].'</font></td>';  
    
$final++; 
    if(
$final == 2
    { 
       echo 
"</tr>"
       
$final 0
    } 
  } 
  echo 
"</table>";
?>

<br>
<?php 
$nameget
=$_GET['folder'];
if(
$page 0$page1left '<a href= ./3d_group.php?folder='.$nameget.'&page='. ($page 1) .'>Previous</a> '
if(
$page <= $total$page1right '<a href= ./3d_group.php?folder='.$nameget.'&page='. ($page 1) .'>Next</a>'
echo 
'<table width="100%" border="0">
<tr>
'

echo 
$pervpage.'
<td align="center" valign="top" width="50%"><div id="nextprevious">'
.$page2left.'&nbsp;'.$page1left.'</div></td>
<td align="center" valign="top" width="50%"><div id="nextprevious">'
.$page2right.'&nbsp;'.$page1right.'</div>';
echo 
'</td></tr></table>';
?>

   
 
 автор: ronin   (03.04.2008 в 12:16)   письмо автору
 
   для: Klavier   (03.04.2008 в 09:59)
 

здравствуйте!
у вас while ( $postrow[] = mysql_fetch_array($result))
два раза, но не из этого, а из-за for который настроен на вывод восьми! картинок $num = 8
попробуйте обойтись без конструкции for я использую такой же вывод, только без for($i = 0; $i < $num; $i++)
в крайнем случае замените $num на $posts в for

   
 
 автор: Klavier   (03.04.2008 в 13:21)   письмо автору
 
   для: ronin   (03.04.2008 в 12:16)
 

без for($i = 0; $i < $num; $i++) отказывается работать!
замена $num на $posts не помогает!!
Может еще вариаты есть???

   
 
 автор: KirillKiev   (03.04.2008 в 13:41)   письмо автору
 
   для: Klavier   (03.04.2008 в 13:21)
 

у вас цикл for там где вы выводите строки расчитан жестко на 8 проходов ($num = 8; )
сообщения об ошибках видимо выключено
а в массив postrow[] перед фором ложиться ровно столько строк, сколько выходит из базы
если было бы включены ошибки у вас они бы полезли - обращение к несуществующему индексу массива там где вы

echo '<td align="center" valign="bottom"><a href="'.'3d_id.php?id='.$postrow[$i]['id'].'" title="'...........

можно проверять наличие данного ($i) элемента массива, и если его нет выходить из цикла

for($i = 0; $i < $num; $i++)

if( !isset( $postrow[$i] ) )break;


или просто в for

$num =  count($postrow);
for($i = 0; $i < $num; $i++)

   
 
 автор: Klavier   (03.04.2008 в 16:44)   письмо автору
 
   для: KirillKiev   (03.04.2008 в 13:41)
 

Этот вариант подошел
for($i = 0; $i < $num; $i++) 
{  
if( !isset( $postrow[$i] ) )break; 

Спасибо за внимание и поддержку))))

   
Rambler's Top100
вверх

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