Php 错误:未知列';joinedactivities.searchact id=searchact.id';在';关于第'条;

Php 错误:未知列';joinedactivities.searchact id=searchact.id';在';关于第'条;,php,html,mysql,sql,Php,Html,Mysql,Sql,我不断收到此错误:“on子句”中的未知列“joinedactivities.searchact id=searchact.id”。我已经检查了表名并尝试更改它,但我不断出错 我有桌子: joinedactivities-id、用户id(外键)、searchact id(外键) searchact id、邮政编码、lat、long、爱好、地点 我正试图从外键searchact id显示表searchact中的行 $user=$_SESSION['id']; $sql ="SELECT * FRO

我不断收到此错误:“on子句”中的未知列“joinedactivities.searchact id=searchact.id”。我已经检查了表名并尝试更改它,但我不断出错

我有桌子:

joinedactivities-id、用户id(外键)、searchact id(外键)

searchact id、邮政编码、lat、long、爱好、地点

我正试图从外键searchact id显示表searchact中的行

$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";
}

背景标记包含数据库对象。因此,您告诉查询引擎,整个对象是一个对象(在本例中是一列):

我认为您没有名为
joinedactivities.searchact id=searchact.id
的列,因此查询失败。(即使您有一个名为that的列,它仍然是一个不完整的ON子句。)在backticks中包含单个数据库对象:

`joinedactivities`.`searchact id` = `searchact`.`id`

您的反勾号不正确:

`joinedactivities.searchact id = searchact.id` 
^--------------------------------------------^
您已将整个字符串转换为单个标识符。你可能想要更像

`joinedactivities`.`searchact_id` = `searchact`.`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";
}

希望这对您有所帮助

为什么要在
searchact id
列中添加下划线?只是在更正时犯了一个小错误,感谢+1的回答看起来
searchact id
可能确实有一个空格(您将其更改为下划线),然后需要反勾。(请注意查询后面的
用户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";
}