0

テーブルは次のようになります。

id -- 質問 -- test_name

1 -- ナンバー 1 -- 予選

2 -- ナンバー 2 -- 予選

3 -- ナンバー 3 -- 予選

4 -- ナンバー 4 -- 予選

1 -- ナンバー 1 -- 中期

2 -- ナンバー 2 -- 中期

3 -- ナンバー 3 -- 中期

4 -- ナンバー 4 -- 中期

まず、ID が自動インクリメントされないデータベース内のテーブルでは、主要な試験 (予備、中間) ごとに ID が 1、2、3、4 として繰り返されます。これは、主要な試験ごとの質問数に相当します。

問題は、ID = "1" の PRELIM のように 1 つの要素のみをフェッチすると、id= "1" の Midterm も表示されることです。中間を省略するにはどうすればよいですか?

クエリコード:

    $id=$_GET['id'];

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

私の問題を理解していただければ幸いです。

ここに画像の説明を入力

4

1 に答える 1

0

lonesomeday がコメントで言っているように、これは素晴らしいデザインだとは思いませんが、現在持っているものの代わりに IS NOT 機能を使用できます。

 $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 は減価償却されていることに注意してください。しかし、何もないよりはましです :)

于 2012-09-27T14:55:42.510 に答える