顺便说一句,在提到之前,我很清楚我应该使用 mysqli。提前致谢。
这是我的代码:
$q5 = "select listingid FROM userlisting WHERE userid = '$_SESSION[UserID]'";
$r5 = mysql_query($q5) or die(mysql_error());
$a5 = mysql_fetch_array($r5);
用户列表是一个“查找”表,有两列: 用户 ID 和列表 ID 它具有多对多的关系。换句话说,可能有一个用户标识附加(关联)到多个列表标识,从而在该表中具有多行。
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
上它是 true,但在 ?id=2
和 id=3 上它是 false,但 userid = 1 有三行包含条目 1、2 和 3。
我已经尝试寻找解决方案有一段时间了,但现在我开始感到沮丧。如果有人能为我提供快速解决方案,我将不胜感激。
最佳答案
您可以使用一些子句在 SQL 上检查两者,例如
WHERE 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 ....
关于php - 如何从表中选择所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31092215/