2010-02-18 75 views
0

這裏是我的代碼,其中一部分工作完美而另一部分則不工作。
PHP SQL語句中的循環問題

<?php 
$query = "Select * from Query ORDER BY time DESC"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 
?> 

<span class="hotspot" onmouseover="tooltip.show('<center><b><?php echo $row['name'] ?></b></center>');" onmouseout="tooltip.hide();"> 
<?php 
echo "<img src='/" . $row['name'] . ".gif'> "; 
} 
?> 

現在有喜歡100+行,第二$row['name']工作正常與循環,但第一個使用第rwos導致每一個結果。
任何解決方案?

回答

0

我發現了這個問題。 結束</span>在循環之後。

+0

是啊......我正在改寫它來爲你清理它,這實際上是我的一個問題。 「這個跨度在任何地方結束?」。 這不會改變打印出來的'$ row ['name']'的值,儘管它可能會使它看起來如此。一定要查看您的實際HTML,看看發生了什麼。您也可能希望使用Firefox的W3 Validator或HTML Validator擴展。 – JAL

0

您是否嘗試將$ row ['name']賦值給一個變量,然後使用該變量來構建HTML?

+0

試過沒有工作 –

0

我不知道這事,但你可以把它放到一個分號在您的第一塊回聲代碼:

<?php echo $row['name']; ?> 
+0

試過了,沒有工作 –

+0

在別處放棄分號當然是一個致命的錯誤,但PHP並不介意在關閉PHP標記之前爲最後一個命令省略它。 – JAL

0

我沒有發現任何明顯的errors--嘗試添加一行代碼所以它在循環的早些時候迴應了$ row ['name'],這可能會幫助你更好地理解正在發生的事情。見下:

<?php 
$query = "Select * from Query ORDER BY time DESC"; 
$result = mysql_query($query); 
while ($row = mysql_fetch_assoc($result)) { 
echo $row['name']."<br>";  // <-------- ADD THIS LINE 
?> 

<span class="hotspot" onmouseover="tooltip.show('<center><b><?php echo $row['name'] ?></b></center>');" onmouseout="tooltip.hide();"> 
<?php 
echo "<img src='/" . $row['name'] . ".gif'> "; 
} 
?>