Php 如何分别呼出helper\u tbl status列和getter\u tbl status列字段

Php 如何分别呼出helper\u tbl status列和getter\u tbl status列字段,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我希望能够指定要回显的表列 当我尝试仅从“帮助器”列打印时,我变得空白 $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){ $ou

我希望能够指定要回显的表列

当我尝试仅从“帮助器”列打印时,我变得空白

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

您的问题是这两列都被称为
状态
,因此当结果数组形成时,第二个
状态
值将覆盖第一个值(因为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\u id
列(可能还有其他列)也会遇到同样的问题。一般来说,最好单独枚举所需的列(而不是使用
*
),这样可以从一开始就避免此问题。

@Okorokelechi无需担心-我很高兴能提供帮助。您的代码容易受到SQL注入的影响。你应该使用事先准备好的陈述。