2015-06-27 93 views
0

顺便说一句,在提到之前,我很清楚我应该使用mysqli。提前致谢。如何从表中选择所有行?

这是我的代码:

$q5 = "select listingid FROM userlisting WHERE userid = '$_SESSION[UserID]'"; 
$r5 = mysql_query($q5) or die(mysql_error()); 
$a5 = mysql_fetch_array($r5); 

的userlisting表是“查找”表,有两列: 用户名和listingid 它有一个多对多的关系。换句话说,可能有一个用户标识附加(关联)到多个listingids,因此在该表中有多个行。

e.g. 
userid|listingid 
1|1 
1|2 
1|3 
2|1 
etc 

为了让事情简单:我想要做的是检查以下内容:

$a5['listingid'] == $_GET['id'] 

而且如果这是真的,我会显示信息,如果是假的不会被显示的信息。

所以在页面mywebsite.com会有一个id,因此mywebsite.com?id=[id here]。我正在尝试查看用户$_SESSION[UserID]是否在用户上市表中具有与该页面的ID相匹配的条目(呃,它是属性网站,ID是属性列表的ID)。

目前我上面的代码仅仅搜索/检查用户ID的第一行。在上面给出的例子中,这将是listingid ='1'它没有看到第2行和第3行也分别具有条目,分别为listingid ='2'和'3'。因此,对mywebsite.com?id=1这是事实,但?id=2和id = 3这快到了假,但用户ID = 1有三行的条目1,2和3

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

+0

这不会产生你所期望的查询字符串:' “..... '$ _ SESSION [用户名]'”'。所以转储该查询字符串,看看我的意思。 – arkascha

回答

0

你可以像

WHERE userid=XX AND listingid=XX 

一些条款同时检查SQL记住逃脱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 .... 
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 
相关问题