如何从表别名获得mysqli_fetch_assoc的结果

时间:2016-12-09 11:13:49

标签: php mysql mysqli

我对PHP很陌生,如果我的select语句有表连接,并且用表别名处理这些连接,我就不知道如何从mysqli_fetch_assoc()函数获取结果。

代码如下:

$sql = 'SELECT T1.update_text, T1.created_at, T2.username, T3.group_name   FROM updates AS T1
        INNER JOIN users AS T2 ON T2.user_id = T1.user_id_fk
        INNER JOIN groups AS T3 ON T3.group_id = T1.group_id_fk
        WHERE T1.user_id_fk = "1"';

之后的PHP代码:

if (mysqli_num_rows($result) > 0) {
   while($row = mysqli_fetch_assoc($result)) {
   printf ("%s (%s)\n",$row["username"],$row["T1.created_at"]);
   }

对于"用户名"我没有收到错误,但没有显示任何内容。对于第二个我得到索引未定义错误。 (这只是代码片段)

1 个答案:

答案 0 :(得分:-1)

按如下所示更改SQL查询,

$sql = 'SELECT T1.update_text as update_text, T1.created_at as created_at, T2.username as username, T3.group_name as group_name   FROM updates AS T1
        INNER JOIN users AS T2 ON T2.user_id = T1.user_id_fk
        INNER JOIN groups AS T3 ON T3.group_id = T1.group_id_fk
        WHERE T1.user_id_fk = "1"';

然后按如下所示更改PHP代码,

 $result = $mysqli->query($sql);
    if (mysqli_num_rows($result) > 0) {
       while($row = $results->fetch_object()) 
       {
           echo $row->username.$row->created_at."<br/>";
       }
    }