我一直收到此错误错误:未知栏' joinedactivities.searchact id = searchact.id'在条款'。我检查了表名并尝试更改它但我一直收到错误。
我有桌子:
joinedactivities-id,用户id(外键),searchact id(外键)
searchact-id,postcode,lat,long,hobby,venue
我正在尝试从外键搜索ID中显示表搜索中的行。
$user=$_SESSION['id'];
$sql ="SELECT * FROM `joinedactivities` JOIN `searchact` ON `joinedactivities.searchact id = searchact.id` WHERE `user id`=$user ";
$result = mysqli_query($conn, $sql)or die("Error: ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
// output data of each row
echo "Hobby : " . $row["searchact id"];
}
} else {
echo "You have not joined any groups";
}
答案 0 :(得分:1)
反引号包含数据库对象。所以你告诉查询引擎这整个事物是一个单独的对象(在这种情况下是一个列):
`joinedactivities.searchact id = searchact.id`
我认为您没有名为joinedactivities.searchact id = searchact.id
的列,因此查询失败。 (即使你确实有一个名为this的列,它仍然是一个不完整的ON
子句。)在反引号中包含个别数据库对象:
`joinedactivities`.`searchact id` = `searchact`.`id`
答案 1 :(得分:1)
你的反引号不正确:
`joinedactivities.searchact id = searchact.id`
^--------------------------------------------^
您已将整个字符串转换为单个标识符。你可能想要更像
的东西`joinedactivities`.`searchact_id` = `searchact`.`id`
请注意,这些标识符中没有一个是保留字,这意味着根本不需要反引号。
答案 2 :(得分:0)
你的代码是正确的但是有点错误 - 错误的回溯。使用以下代码
$user=$_SESSION['id'];
$sql ="SELECT * FROM `joinedactivities` JOIN `searchact` ON `joinedactivities`.`searchact id` = `searchact`.`id` WHERE `user id`=$user ";
$result = mysqli_query($conn, $sql)or die("Error: ".mysqli_error($conn));
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
// output data of each row
echo "Hobby : " . $row["searchact id"];
}
} else {
echo "You have not joined any groups";
}
希望这有助于你