如何从表中选择所有行?

时间:2015-06-27 18:39:54

标签: 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);

用户列表是一个'查找'表并有两列: 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。

我一直试图找到一个解决方案,现在我开始感到沮丧。如果有人能为我提出快速解决方案,我将非常感激。

2 个答案:

答案 0 :(得分:0)

您可以使用某些子句(例如

)检查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 ....

答案 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