无法调用数据,第一次编写数据库连接

时间:2011-07-06 19:46:07

标签: php mysql sql

我正在尝试编写使用数据库连接的第一个查询。我已经离开了一个教程网站,只是它似乎没有显示任何东西,任何人都可以看到我的代码有任何明显的错误?

//USers with Same Interests
$interests_query = "SELECT * 
                      FROM produgg_users AND user_interests 
                     WHERE produgg_users.id = user_interests.user_id 
                       AND (interest = $interest1 
                         OR interest = $interest2 
                         OR interest = $Interest3)";
$interests_result = mysql_query($interests_query);

if($interests_result != 0) {
  while($interests_row = mysql_fetch_array($interests_result, MYSQL_ASSOC)) {
    echo $row->id;
  } 
} else {
  echo "No users to display!";
}
//END SAME INTERESTS

@Jay回答我现在只有它仍然没有带回任何信息,只是打印出“没有用户透露”

//USers with Same Interests
$interest1 = "footy";
$interests_query = "SELECT * FROM produgg_users
                     join user_interests on produgg_users.id = user_interests.user_id
                     where interest = $interest1 OR interest = $interest2 OR interest = $Interest3";
$interests_result = mysql_query($interests_query);

if($interests_result != 0) {
while($interests_row = mysql_fetch_array($interests_result, MYSQL_ASSOC))
{
    echo $row->id;
} 
}
else
{
echo "No users to display!";
}
//END SAME INTERESTS

3 个答案:

答案 0 :(得分:3)

使用JOIN尝试查询以链接两个表。

SELECT * 
    FROM produgg_users 
        INNER JOIN user_interests
            ON produgg_users.id = user_interests.user_id
    WHERE (interest = $interest1 OR interest = $interest2 OR interest = $Interest3)

答案 1 :(得分:1)

您应该... mysql_query($interests_query) or die(mysql_error())来捕获任何语法错误。

如果没有结果,

mysql_query()不返回“0”。它返回一个结果句柄,或一个布尔值false表示查询完全失败。您可以查看与mysql_num_rows($interests_result)

匹配的行数

答案 2 :(得分:0)

SELECT * FROM produgg_users AND user_interests WHERE produgg_users.id = user_interests.user_id AND(interest = $ interest1 OR interest = $ interest2 OR interest = $ Interest3)“;

您的关键问题是,这不是连接的正确语法。你不要在表名之间说“和”。你要么放一个逗号,然后在where子句(旧的,笨拙的样式)中给出连接条件,要么你写“join”并将连接条件放在“on”子句中(新的,漂亮的样式)。

旧式:

SELECT * FROM produgg_users, user_interests
WHERE produgg_users.id = user_interests.user_id
AND (interest = $interest1 OR interest = $interest2 OR interest = $Interest3)

新风格:

SELECT * FROM produgg_users
join user_interests on produgg_users.id = user_interests.user_id
where interest = $interest1 OR interest = $interest2 OR interest = $Interest3