2012-09-27 99 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

非常感谢。我知道了。 –

相关问题