2012-09-27 96 views
0

表看起來是這樣的:取兩個元素,而不是一個

ID - 問題 - TEST_NAME

1 - 數量1 - 預賽

2 - 數量2 - 預賽

3 - 數3 - 預賽

4 - 數4 - 預賽

1 - 數1 - 期中

2 - 數量2 - 期中

3 - 數3 - 期中

4 - 數4 - 期中

第一,數據庫中的表格不是自動遞增的,但是對於每個主要考試(前期,中期),id都重複爲1,2,3,4,這相當於每個主要考試的問題數量。

問題是,當我們只讀取1個元素時,讓我們假設id =「1」的PRELIM,也會出現id =「1」的中期。我如何省略期中?

查詢代碼:

$id=$_GET['id']; 

    $result = mysql_query("SELECT * FROM paper WHERE id = '$id' and test_name='$test_name'"); 

我希望你明白我的問題。

enter image description here

+2

我會在一秒鐘內解決這個問題,但是您應該在查詢中運行它之前真正清理$ id,或者您將要在一個受傷的世界。 – DaOgre

+2

這實在不是一個好的數據庫設計。你不應該有'id'的重複值。 – lonesomeday

+0

約定是'id'是唯一自動增量鍵的列。你最好改變其他關鍵字的'id'的名字。 –

回答

0

由於lonesomeday在評論中說,我不認爲這是偉大的設計,但你可以使用IS NOT功能,而不是你現在所擁有的,假設TEST_NAME認爲你正在尋找的價值。

$id=mysql_escape_string($_GET['id']); 
$test_name = 'PRELIM';  
$result = mysql_query("SELECT * FROM paper WHERE id = '$id' and test_name IS NOT '$test_name'"); 

否則,您需要發佈您的完整表格供我們查看。另外請記住mysql_escape_string是貶值的,但它比沒有更好:)

+0

非常感謝。我知道了。 –

相關問題