【问题标题】:Image displaying from database从数据库显示的图像
【发布时间】:2012-06-03 20:40:31
【问题描述】:

我正在尝试使用下一个上一个按钮显示数据库中的图像。

这是我的代码:

<?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 做到这一点而没有任何问题,但我必须使用一种方法在会话中存储当前显示图片的 id,以便我可以在下图中显示当前显示及其下一张图片的投票数。

有什么办法吗?

【问题讨论】:

    标签: php mysql image image-gallery


    【解决方案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(这是一,神秘地是)。这意味着$z 是number of images minus 2。这就是为什么最后一个记录没有显示。清理该代码,它开始工作,它很容易修复,但我会留给你练习。

    【讨论】:

      猜你喜欢
      • 2017-08-03
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 2016-07-27
      • 1970-01-01
      相关资源
      最近更新 更多