php - 如何从表中选择所有行?

标签 php mysql

顺便说一句,在提到之前,我很清楚我应该使用 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/

相关文章:

php - MYSQL - 查询数据库中&在单元格中的位置

Mysql - 存储过程并发问题

java - 从 hibernate 实体中删除 NotNull 字段

php - 错误 : "Could not open input file" when running . bat 文件

php - MySQL COMPRESS 与 PHP gzcompress

java - Kotlin 。 Java 和 PHP 与 MySQL 的性能

php - #1217 - 无法删除或更新父行 : a foreign key constraint fails in PHPMyAdmin

php - 多个 mysqli_queries 是否使用相同的连接?

javascript - 禁用单选按钮更改的输入字段

mysql - 没有提示指令的直接连接中表的顺序是否会影响性能?