2012-06-03 207 views
0

我试图用数据库显示下一个按钮的图像。从数据库中显示图像

这里是我的代码:

<?PHP 
session_start(); 
$page = "voting.php"; 
include ('dbconnect.php'); 
$q = "SELECT * FROM vote_frames"; 
$r = mysql_query($q); 
while($row = mysql_fetch_array($r)){ 
    $i_array[] = $row['frame_pic']; 
    $i_array1[] = $row['frame_pic1']; 
    $i_array2[] = $row['frame_pic2']; 
    $id_array[] = $row['frame_id']; 
} 
$fpp = 1; 
$num_images = count($i_array); 
$image_path = "frames/"; 
$y = $fpp; 
if(!isset($_GET['first'])){ 
     $first = 0; 
    }else{ 
     $first = (int) $_GET['first']; 
} 
$x = $num_images - 1; 
$z = $x - $y; 
if($first>$z) { 
    $first = $z; 
} 
$last = $first + $fpp; 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
</head> 
<body> 

<div> 
       <?PHP 
       $i = $first; 
       $prev = $first-1; 
       $next = $first +1; 
       if($prev<0){ $prev = 0; } 
       ?><a href="<?PHP echo $page; ?>?first=<?PHP echo $prev; ?>">Previous</a><?PHP 
       while($i<$last) { 
        $f = $image_path . $i_array[$i]; 
        $f1 = $image_path . $i_array1[$i]; 
        $f2 = $image_path . $i_array2[$i]; 
        ?> 
        <img src="<?PHP echo $f; ?>"> 
        <img src="<?PHP echo $f1; ?>"> 
        <img src="<?PHP echo $f2; ?>"> 
        <?PHP 
        $i++; 
       } 
       ?><a href="<?PHP echo $page; ?>?first=<?PHP echo $next; ?>"><Next</a><?PHP 
       ?> 

</div> 
</body> 
</html> 

图像会显示但一个奇怪的行为,去年的记录没有显示。其实为了测试当我回显当前显示记录的id时,它显示下一个id,因此记录具有next的id。

我知道我可以用jquery做任何问题,但我必须使用一种方法在会话中存储当前显示图片的ID,以便我可以在下面的图表中显示当前显示和其下一张图片的投票计数。

有没有采取?

回答

1

这部分这里非常神秘,为什么你这样写呢?我假设你已经测试了几种方法来做到这一点,但是......在你更正或测试它时清理代码。这样,它不会太难以阅读。

$fpp = 1; 
$num_images = count($i_array); 
$image_path = "frames/"; 
$y = $fpp; 
if(!isset($_GET['first'])){ 
     $first = 0; 
    }else{ 
     $first = (int) $_GET['first']; 
} 
$x = $num_images - 1; 
$z = $x - $y; 
if($first>$z) { 
    $first = $z; 
} 
$last = $first + $fpp; 

而且还有你的问题太$x是图像减去一个数,$z$x$y(这是一个含糊是)。这意味着$znumber of images minus 2。这就是为什么最后的记录没有显示。清理代码,它开始工作,这将很容易解决,但我会留给你作为练习。

+0

太棒了!解决它,$ z = $ x - $ y;必须被删除。 –