2012-06-03 135 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;必須被刪除。 –