顺便提一下,在提到它之前,我很清楚我应该使用mysqli。提前谢谢。
这是我的代码:
$q5 = "select listingid FROM userlisting WHERE userid = '$_SESSION[UserID]'";
$r5 = mysql_query($q5) or die(mysql_error());
$a5 = mysql_fetch_array($r5);
用户列表是一个'查找'表并有两列: userid和listingid 它有很多关系。换句话说,可能有一个用户ID附加(关联)到多个listingid,因此在该表中有多行。
e.g.
userid|listingid
1|1
1|2
1|3
2|1
etc
为了简单起见:我想要做的是检查以下内容:
$a5['listingid'] == $_GET['id']
如果为True,我将显示信息,如果为False,则不会显示信息。
因此,在页面mywebsite.com上会有一个id,mywebsite.com?id=[id here]
。我试图看看用户$_SESSION[UserID]
是否在userlisting表中有一个与页面ID匹配的条目(好吧,它是一个属性网站,id是属性列表的id)。
目前我上面的代码只搜索/检查该用户ID的第一行。在我上面给出的示例中,将是listingid =' 1'它没有看到第2行和第3行也有条目,listingid =' 2'和' 3'分别。所以在mywebsite.com?id=1
上确实如此,但在?id=2
和id = 3时它会出现错误,但是userid = 1有三行,条目为1,2和3。
我一直试图找到一个解决方案,现在我开始感到沮丧。如果有人能为我提出快速解决方案,我将非常感激。
答案 0 :(得分:0)
您可以使用某些子句(例如
)检查SQLWHERE userid=XX AND listingid=XX
请记住转义get参数;)
PS:你可以用一段时间来迭代mysql_fetch_row并搜索是否有人是正确的。类似的东西:
$correct_check = false;
while($a5 = mysql_fetch_array($r5)) {
if($a5['listingid'] == $_GET['id']) $correct_check = true;
}
if($correct_check) ....
else ....
答案 1 :(得分:0)
尝试这样的事情
$page_id = $_GET['id'];
$q5 = "select listingid FROM userlisting WHERE userid = '$_SESSION[UserID]' and listingid = '$page_id' ";
$res = mysql_qury($result);
$num_rows = $mysql_num_rows($res);
if($num_rows > 0)
//your ok code
else
//fail message