简体   繁体   中英

How to get results from mysqli_fetch_assoc with table aliases

I am pretty new to PHP and don't know how to get results from the mysqli_fetch_assoc() function if my select statement has table joins and those joins are handled with table aliases.

The code looks like following:

$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"';

And the PHP Code afterwards:

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

For the "username" row I am not getting an error, but nothing is displayed. For the second one I am getting an Index undefined error. (This is only a snippet of the code)

Change the SQL Query as following,

$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"';

then change the PHP code as following,

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM