我正在尝试使用下一个上一个按钮显示数据库中的图像。
这是我的代码:
<?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,所以记录有下一个的id。
我知道我可以用jquery做任何问题,但是我必须使用一种方法在会话中存储当前显示pic的id,这样我就能在下图中显示当前显示和下一张图片的投票数。
有什么看法吗?
答案 0 :(得分: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
是图像数量减1,而$z
是$x
减去$y
(这是一个,加密是)。这意味着$z
是number of images minus 2
。这就是为什么最后的记录没有显示。清理该代码,它开始工作,很容易修复,但我会把它留给你练习。