2011-06-14 113 views
0

我的腳本正在從數據庫中檢索圖像並在表格中顯示圖像。我想讓表格有4列圖像,然後再打開行並重新開始。我在這個論壇上發現了一些有用的答案,但是在重新組織和操縱代碼後,它會在其自己的表中顯示每個圖像,而不是在每個第四個圖像之後添加行分隔符。我正在睡覺,但希望第二雙眼睛可以幫助我發現問題。將mysql數據庫數據導入html表限制列

<?php 
include_once "connect.php"; 
$userid = $_SESSION['id']; 
$albumid = $_GET['album']; 
$pic = mysql_query("SELECT * FROM `pictures` WHERE userid='$userid' AND 
albumid='$albumid'"); 
$i = 0; 
echo "<center><table width='50%'><tr>"; 
while($row = mysql_fetch_assoc($pic)){ 
$id = $row["id"]; 
$thumbnail = $row["thumbnail"]; 
echo "<td><a href='viewphoto.php?photo=$id'><img src='$thumbnail'> 
</a></td>"; 
if ($i && $i%4 == 0) echo '</tr><tr>'; 
$i++; 
echo "</tr><tr>"; 
} 
echo "</table> </center>"; 
?> 

?>

周圍一點點擺弄和

while($row = mysql_fetch_assoc($pic)){ 
$id = $row["id"]; 
$thumbnail = $row["thumbnail"]; 
if ($i && $i%4 == 0) echo '</tr><tr>'; 
$i++; 
echo "<td><a href='viewphoto.php?photo=$id' rel='facebox'><img src='$thumbnail'> 
</a></td>";} 

工作就像一個魅力,謝謝!

回答

1

$我在循環內初始化。和桌子也帶到外面。

請參閱下面的代碼。

 <?php 
     include_once "connect.php"; 
     $userid = $_SESSION['id']; 
     $albumid = $_GET['album']; 
     $pic = mysql_query("SELECT * FROM `pictures` WHERE userid='$userid' AND 
     albumid='$pic'"); 
     $i = 0; 
    echo " 
    <center><table width='50%'><tr>"; 

     while($row = mysql_fetch_assoc($image)){ 
    $id = $row["id"]; 
    $thumb = $row["thumb"]; 
    $date = strftime("%b %d, %Y", strtotime($row['date'])); 
    echo "<td><img src='$thumbnail'></td>"; 

    if ($i && $i%4 == 0) echo '</tr><tr>'; 
     $i++; 
    } 
    echo "</table> </center>"; 
    ?> 
+0

我想這不會解決完整的問題和需要 – 2011-06-14 07:47:34

+0

我想你的意思是$ row = mysql_fetch_assoc(** $ pic **)而不是$ row = mysql_fetch_assoc(** $ image **)? 變量名稱** $ pic **和** $ albumid **令人困惑。另請參閱nicja關於SQL注入攻擊的注意事項 – increddibelly 2011-06-14 08:10:56

+0

是的,如果我的問題只是互換變量,我會覺得非常愚蠢......大聲笑。我非常感謝Ajay,感謝您輸入了正確的代碼,但由於某些原因,即使表格列和行是while循環中的唯一內容,仍然在每次輸入後應用,而不是在4 =/ – dystopia 2011-06-14 08:20:52

2

問題是你正在while循環中聲明你的表。你應該在while循環的任一側打開和關閉你的表標籤,並且在循環中只有tr和td。

這裏似乎還有一些互換的變量名,這會導致意外的行爲。在你的SQL查詢中,我認爲你的意思是... albumid ='$ albumid'...並且在while循環中,我認爲你需要while($ row = mysql_fetch_assoc($ pic)){

另外,請注意,此SQL查詢是開放的SQL injection attacks

+0

我不敢相信我沒有看到,並且變量名稱都匹配,我只是爲網站清理它,但(愚蠢地)互換了一些。謝謝! – dystopia 2011-06-14 08:17:54