所以我有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>";
}
}
}
答案 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