2013-10-21 60 views
0

我想在屏幕上顯示特定主題的圖像。我有5個圖像具有相同的主題,它只顯示一個圖像。如果我更改數據庫中圖像的主題,則會出現包含我嘗試調用主題的下一張圖像。從數據庫顯示內容只有一次使用PHP和MySQL

function selectSubject($subject){ 
     $showSubject = mysql_query("SELECT name FROM images WHERE subject = '$subject'"); 
     while($showSubject = mysql_fetch_array($showSubject)){ 
       $source_subject_trees = $showSubject['name']; 
       echo "<img class=\"subject_images\" src='img/$source_subject_bomen'></>"; 
     } 
    }; 
+2

您對查詢的結果和'mysql_fetch_array'的返回值都使用相同的變量。重命名其中的一個,你應該沒問題 - 此刻,$ showSubject中的數據庫結果集將被第一條記錄覆蓋,並結束循環。 – andrewsi

+0

爲我工作,謝謝。 –

回答

3

mysql_query()返回結果句柄。然後,通過重新分配給它的while()循環中踩遍該句柄:

$showSubject = mysql_query(...); 

while($showSubject = msyql_fetch_array($showSubject)) { 
     ^^^^^^^^^^^^---here 

mysql_fetch_array()返回一行的一組數據。由於您在存儲實際查詢結果句柄時分配了SAME變量,因此您銷燬結果句柄並最終無法獲取更多數據,因爲句柄已經消失。

+1

謝謝你的明確解釋。 –

0
  1. mysql_query,您可以使用GROUP BY subject只得到不同的結果
  2. mysql_query,您可以使用DISTINCT(name)獲得上選擇時間不同的結果

任何aboue提到的選項來獲得,按您的有效結果。

相關問題