我在显示以下查询的结果时遇到问题:
$sql="SELECT CONCAT(threadID,'',memberID),'posts' as Type
from posts
where memberID=$userid
UNION
SELECT CONCAT(threadID,'',memberID),'replies',as Type
from replies
where memberID=$userid order by 1";
$result=mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result)){
$postid=$row['thread'];
echo $postid;
}
我得到的错误是
undefined index threadID" $postid=$row['threadID'];
最佳答案
问题是您的查询输出中没有名为“thread”的列...您没有输出该列,而是输出 CONCAT 函数的结果。
如果您在循环中编写 var_dump($row);
作为调试步骤,您将看到该行的实际外观。
解决此问题的一个简单方法是为计算列指定一个别名,以便它在 $row 变量中获得一个合理的名称。您可以使用 SQL 中的 AS
关键字来执行此操作。如果您只是将别名称为“thread”,那么您根本不必更改 PHP 代码:
SELECT CONCAT(threadID,'',memberID) AS thread,'posts' as Type
from posts
where memberID=$userid
UNION
SELECT CONCAT(threadID,'',memberID) AS thread,'replies',as Type
from replies
where memberID=$userid order by 1
关于php - 如何显示mysql联合查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58622672/