2014-10-05 220 views
-2

值這是我的PHP代碼:顯示從數據庫表

$query4=mysql_query("select * from quiz 
        where `group`='$token'") or die(mysql_error()); 
while($row4=mysql_fetch_assoc($query4)){ 
    echo $row4['quiz_no']; 
} 

我有我的表中的第3行quiz_no 1 1 2

,但我想是這樣顯示的:

 
Quiz no. 1 
Quiz no. 2 

但它一直顯示

 
1 
1 
2 
+1

'echo'測驗編號'。 。 $ ROW4 [ 'quiz_no'];'? – 2014-10-05 14:24:34

+3

使用'DISTINCT'獲得唯一的結果,並將'Quiz no.'字樣連接到回聲。 – 2014-10-05 14:24:34

回答

0

你只需要選擇不同的對象。您的查詢可以改爲:

select distinct quiz_no from quiz where `group`='$token' 

注意,這不是進行數據庫查詢的一種安全的方法,因爲它是受SQL injection攻擊。像下面將是首選:

$query = sprintf("select distinct quiz_no from quiz where `group`='%s'", 
       mysql_real_escape_string($token)); 
mysql_query($query); 

如果你想達到你所期望的輸出,則需要呼應「測驗不」。手動:

echo "Quiz no. " . $row4['quiz_no']; 
+0

我從來沒有完全確定的東西是'DISTINCT *' - TBH,我還沒有發現任何違背它或允許它的東西,但MySQL聲明'SELECT DISTINCT列' - 你似乎也有一個語法錯誤'sprintf'版本。 Stack的語法高亮顯示正在抱怨。 – 2014-10-05 14:39:19

+0

當我使用'選擇不同*'它只會輸出錯誤,但當我使用'選擇不同quiz_no',但我也需要其他值 – 2014-10-05 14:44:27

+0

我忘了更新查詢。我糾正了上面的錯誤,謝謝你的糾正。 Remo - 你需要什麼「其他價值」?如果是組,你已經有了...... – 2014-10-05 14:49:02

0

只需在字符串「Quiz no。同時回答測驗號碼並使用DISTINCT

<?php 
    $query4=mysql_query("select distinct * from quiz where `group`='$token'") or die(mysql_error()); 
    while($row4=mysql_fetch_assoc($query4)){ 
     echo "Quiz no. " . $row4['quiz_no'] ."\n"; 
    } 
?> 
+1

再次閱讀問題和代碼。 OP想要測驗沒有。 1和2,而不是'1-1-2' – 2014-10-05 14:35:03

+1

對不起,abt that .. – 2014-10-05 14:39:54