mysql查询没有给我正确的输出

时间:2013-07-04 06:55:59

标签: php mysql

即使我选择不同用户制作的活动,我的查询也会给我一个固定数字'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;

出了什么问题?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);
}
希望它会对你有所帮助。

答案 2 :(得分:0)

你必须改变

echo $li;

print_r($li);