1

即使我选择不同用户制作的事件,我的查询也会给我一个固定数字“2”。

$q=mysql_query("SELECT e.user_id 
    FROM ".$table_prefix."events e
    WHERE EXISTS 
        (
            SELECT email 
            FROM ".$table_prefix."users u 
            WHERE e.user_id = u.user_id
        )
    ");
    $li = mysql_fetch_row($q);    
    echo $li;

怎么了?

4

3 回答 3

2

如果里面的语句返回记录,则 EXISTS 返回 true,如果没有行,则返回 false。

您没有在语句中的任何地方传递或使用您的用户 id 变量。

我更喜欢您的查询进入内部联接:

SELECT 
    events.userid
FROM 
    events INNER JOIN users
    ON events.user_id = users.user_id
WHERE
    users.userid = ?? -- ur passed userid
于 2013-07-04T07:03:45.693 回答
1
$sql="SELECT e.id 
FROM USER e
WHERE EXISTS 
(
 SELECT email 
FROM student u 
WHERE e.id = u.user_id
)";

$gosql=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_row($gosql)){

    echo"<pre>";
    print_r($row);
}


or you can use

$sql="SELECT e.id 
FROM USER e
WHERE EXISTS 
(
 SELECT email 
FROM student u 
WHERE e.id = u.user_id
)";

$gosql=mysql_query($sql) or die(mysql_error());
while($row=mysql_fetch_object($gosql)){

    echo"<pre>";
    print_r($row);
}

希望它会帮助你。

于 2013-07-04T07:11:13.817 回答
0

你必须改变

echo $li;

print_r($li);
于 2013-07-04T07:02:57.390 回答