|
|
|
| Здравствуйте столкнулся с небольшой проблемкой, надеюсь на вашу помощь)))
Есть код выводящий на страницу по 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($result, 0, 0);
$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 - 1 > 0) $page1left = '<a href= ./3d_group.php?folder='.$nameget.'&page='. ($page - 1) .'>Previous</a> ';
if($page + 1 <= $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.' '.$page1left.'</div></td>
<td align="center" valign="top" width="50%"><div id="nextprevious">'.$page2right.' '.$page1right.'</div>';
echo '</td></tr></table>';
?>
|
| |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: ronin
(03.04.2008 в 12:16)
| | без for($i = 0; $i < $num; $i++) отказывается работать!
замена $num на $posts не помогает!!
Может еще вариаты есть??? | |
|
|
|
|
|
|
|
для: 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++)
|
| |
|
|
|
|
|
|
|
для: KirillKiev
(03.04.2008 в 13:41)
| | Этот вариант подошел
for($i = 0; $i < $num; $i++)
{
if( !isset( $postrow[$i] ) )break;
|
Спасибо за внимание и поддержку)))) | |
|
|
|