错误:'on子句'中的未知列'joinedac​​tivities.searchact id = searchact.id'

时间:2015-02-19 14:23:56

标签: php html mysql sql

我一直收到此错误错误:未知栏' joinedac​​tivities.searchact id = searchact.id'在条款'。我检查了表名并尝试更改它但我一直收到错误。

我有桌子:

joinedac​​tivities-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";
}

3 个答案:

答案 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";
}

希望这有助于你