php - 如何分别回显 helper_tbl 状态列和 getter_tbl 状态列字段
问题描述
我希望能够指定正在回显的表列。
当我尝试仅从帮助列打印时我变得空白
$query = $db->fetch("SELECT n.*, g.* FROM helper AS n LEFT JOIN getter AS g ON n.user_id= g.user_id WHERE n.user_id='{$id}' OR g.user_id='{$id}' ");
if($query !== ''){
foreach($query as $value){
$output .= $value['n.status'];
}
print $output;
}
解决方案
您的问题是两列都被调用status
,因此当结果数组形成时,第二个status
值会覆盖第一个值(因为 PHP 数组对于给定的关联键只能有一个值)。您可以使用列别名解决此问题:
$query = $db->fetch("SELECT n.*, g.*, n.status as n_status, g.status as g_status
FROM helper AS n
LEFT JOIN getter AS g ON n.user_id= g.user_id
WHERE n.user_id='{$id}' OR g.user_id='{$id}' ");
if($query !== ''){
foreach($query as $value){
$output .= $value['n_status'];
}
print $output;
}
请注意,您的user_id
专栏(可能还有其他专栏)也会遇到同样的问题。通常,更好的做法是单独枚举您想要的列(而不是使用*
),这样您就可以从一开始就避免这个问题。
推荐阅读
- c++ - 如何在 omnet++ 中发送变量数据?
- javascript - 如何使用 Promise 在画布上加载图像
- python - 如何在不使用 long if else 语句的情况下替换 python 字典中的值
- reactjs - React - 功能组件如何使用“this”属性
- android - 如何在android中以编程方式授予“在后台运行时显示弹出窗口”权限?
- javascript - 如何通过将局部变量放入查询字符串中,使用 JSONPATH 从 JSON 中获取特定对象?
- google-apps-script - Google Scripts 获取星期几
- python - 如何使用附加配置自动化调度
- reactjs - 在渲染中调用的函数中的反引号
- python - 如何在 Windows 中对非套接字 FD 执行 I/O 多路复用?(Python)