我如何分别回显 helper_tbl 状态列和 getter_tbl 状态列字段
How can i echo out the helper_tbl status column seperately and the getter_tbl status column field too
我希望能够指定正在回显的 table 列。
当我尝试仅从辅助列打印出来时,我变得一片空白
$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
栏(可能还有其他栏)也会有同样的问题。通常,更好的做法是单独枚举您想要的列(而不是使用 *
),这样您就可以从一开始就避免这个问题。
我希望能够指定正在回显的 table 列。
当我尝试仅从辅助列打印出来时,我变得一片空白
$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
栏(可能还有其他栏)也会有同样的问题。通常,更好的做法是单独枚举您想要的列(而不是使用 *
),这样您就可以从一开始就避免这个问题。