无法选择3个用户ID相同的表。没有错误出现

时间:2019-01-31 11:26:41

标签: php database mysqli

所以我有3张这样的桌子

Table: users
    user_id(int)   |  phone(int)

Table: products
    prod_id(int)   |  prod_info(varchar)

Table: prod_owners
    owner_id(int)  |  user_id  |  prod_id

我创建了一个可以解析电话号码的函数。它将查找该电话号码以获取user_id。使用user_id它将加入prod_owners表。然后使用prod_owners表中的prod_id,它将加入产品表,其中user_id具有与我们解析的电话号码相同的电话号码。

但是,当我运行该函数时,没有任何错误或任何提示。它只是空白。我知道该功能有效,因为当我执行SELECT * FROM用户时。有用。我也知道表中有数据(我要输出的数据)。

function get_info($stmt, $phone) {

    $userID = search_user($stmt, $phone); // I feel I don't even need this
                                        // I feel I can put this in the
                                        // sql statement itself. But I am
                                        // unsure how
    if ($userID == false) {
        return "Sorry, user not found";
    }

    $sql = "SELECT u.user_id, o.prod_info 
            FROM users u 
            JOIN prod_owners o 
              USING user_id 
            JOIN products 
              USING o.prod_id 
            WHERE u.phone = ?";
    if(!mysqli_stmt_prepare($stmt, $sql)) {
        return false;
    } else {
        mysqli_stmt_bind_param($stmt, "i", $userID);
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while($row = mysqli_fetch_assoc($result)) {
          echo $row['prod_info'] . "<br>";
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试此查询,它必须为您提供帮助。

SELECT users.user_id, products.prod_info FROM users u 
            INNER JOIN prod_owners ON prod_owners.user_id  =  users.user_id
            INNER JOIN products ON products.prod_id  =  prod_owners.prod_id