查询内部查询循环php

时间:2015-01-24 18:28:44

标签: php mysql

这是我的代码:

include('connectTwo.html');

    $query = "select * from users";
    $result = mysql_query($query, $connectTwo);
    while($row = mysql_fetch_array($result))
    {
        echo $row['username'];
        $user_id = $row['user_id'];
        $profile = getProfile($user_id);
        echo $profile;

    }

    function getProfile($user_id)
    {
        $query = "select * from info where user_id='$user_id'";
        $result = mysql_query($query, $connectTwo);
        $row = mysql_fetch_assoc($result);
        $profile = $row['profile'];
        return $profile;
    }

该功能不会返回任何内容。我知道查询是正确的,因为我将它移到函数外部并运行并给出了我正在寻找的值。如果您对我的要求感到困惑,请发表评论。

2 个答案:

答案 0 :(得分:3)

尝试左连接:

$query = "select a.*,b.profile from users a left join info b on b.user_id=a.user_id";

然后您可以删除getProfile()功能。

如果您仍想在其中使用function getProfile($user_id)global $connectTwo,否则您无法使用它,因为它未定义。

答案 1 :(得分:1)

您可以尝试两种方法:

将数据库连接字符串作为参数传递给function getProfile()

赞:getProfile($user_id, $connectTwo);

或者您可以使用global关键字来使用函数getProfile()中的连接字符串

function getProfile($user_id) {
   global $connectTwo;

但最重要的是@zairwolf在上一个答案中指出了更好的方法。

  

注意:尝试使用mysqli_ *或pdo *函数而不是mysql_ *   功能