MySQL Query不根据变量调用数据

时间:2011-07-07 08:43:52

标签: php mysql

我试图通过与我网站上当前登录用户兴趣相同的数据库呼叫所有用户。

我有以下

// Get Session USER interest
$interestsquery  = "SELECT `interest` FROM `user_interests` WHERE `user_id` = " . $usersClass->userID();
$result = mysql_query($interestsquery);

$interests = array();
while(list($interest) = mysql_fetch_array($result))
    $interests[] = $interest;
    $interest1 = $interests['1'];
    $interest2 = $interests['2'];
    $interest3 = $interests['0']; 
// END INTERESTS



//USers with Same Interests
$interests_query = "SELECT * FROM produgg_users
join user_interests on produgg_users.id = user_interests.user_id
where interest = '$interest1' and produgg_users.id != '".$usersClass->userID()."'";
$interests_result = mysql_query($interests_query) or die(mysql_error());

if($interests_result != 0) {
    while($interests_row = mysql_fetch_array($interests_result, MYSQL_ASSOC))
    {
        echo $interests_row['user_id'];
    } 
}
else
{
    print "No users to display!";
}
//END SAME INTERESTS

它不会带回任何数据,但是如果我添加(在//具有相同兴趣的用户之下)     $ interest1 ='footy';

interest_query似乎有效,任何人都可以看到我出错的地方?


我的问题似乎就在这里......

$interest1 = $interests['1'];
$interest2 = $interests['2'];
$interest3 = $interests['0']; 
// END INTERESTS

//USers with Same Interests
$interest1 = 'footy';

如果我手动为$ interest变量赋值,它可以工作,但我需要使用上面数组中的值,这有意义吗?

3 个答案:

答案 0 :(得分:0)

看起来你从user_interests查询user_id作为数字,但是从produgg_users作为字符串查询。也许有问题

答案 1 :(得分:0)

您可以使用一个查询执行此操作:     

$userID = mysql_real_escape_string($usersClass->userID());
$sql = "
SELECT * FROM user_interests AS ui1
JOIN LEFT user_interests AS ui2 ON ui1.id = ui2.id
JOIN LEFT produgg_users AS pu ON ui2.user_id = pu.id
WHERE ui.user_id = " . userID ;

答案 2 :(得分:0)

如果您的代码在添加$interest1 = 'footy';行时返回正确的数据,则表示该变量的值存在问题。您是否在var_dump($interest1);行下尝试了//Users with Same Interests,看看您从interestsquery获得了哪种输入?

我希望var_dump不返回有效的字符串(因为如果可以的话,查询会在$interest1 = 'footy';假设之后起作用),所以你必须查看{{1} }返回错误。