2013-12-10 95 views
0

我有此代碼以5行顯示我的圖像,但由於某些原因,代碼在第一行的末尾添加了圖像。在行中顯示圖像

這段代碼有錯誤嗎?如果不是,我該如何改變它以停止在第一行末尾添加額外的圖像。

代碼:

$query = mysql_query("SELECT * FROM gallery WHERE gallery_number='$gallery_number'"); 

echo '<table width="960">'; 
$i = 0; //first, i set a counter 
while($fetch = mysql_fetch_assoc($query)){ 
//counter is zero then we are start new row 
    if ($i==0){ 
     echo '<tr>'; 
    } 
    //here we creating normal cells <td></td> 
    $image_name = $fetch['image_name']; 
    $image_location = $fetch['image_location']; 
    echo '<td>'.'<img src="'.$image_location.'" alt="'.$image_name.'"/>'.'</td>'; 
    //there is a magic - if our counter is greater then 5 we set counter to zero and close tr tag 
    if ($i>5){ 
     $i=0; 
     echo '</tr>'; 
    }; 
    $i++; //$i = $i + 1 - counter + 1 
} 
echo '</table>'; 

回答

1

要開始的$i計數與0,所以用你的支票,它會返回6個結果。

if ($i>5){ 
    $i=0; 
    echo '</tr>'; 
}; 

這要麼是這樣的:

if ($i>4){ 
    $i=0; 
    echo '</tr>'; 
}; 

或者你可以改變你的$i計數器在1並重置爲1

0

這段代碼不會出於幾個原因。

首先,考慮您實際創建<td> s的次數。你開始你的櫃檯,$i0。您只能在6後重置它。你循環太多次了。

二,隨着你增加你的櫃檯,你將只有創建1 <tr>。這是因爲您將計數器重置爲0。然後立即將其增加到1.這將防止下一個<tr>被創建。

1

您不關閉TR。只有當我達到5美元時,纔會關閉TR,而且您也不打開新的。在瀏覽器中檢查結果(Ctrl-U)。

你的程序應該包含這樣的內容:

if ($i > 5) { 
    echo("</tr><tr>"); 
    $i = 0; 
} 

它關閉一整行,並打開一個新的。此外,您應該在循環之前打開TR,並在循環之後關閉。 (高級任務:消除空TR對。)