2016-12-09 4 views
0

Ich bin ziemlich neu in PHP und weiß nicht, wie Ergebnisse von der mysqli_fetch_assoc() Funktion erhalten, wenn meine Select-Anweisung Tabellen Joins hat und diese Joins mit Tabellen-Aliase behandelt werden.Wie Ergebnisse von mysqli_fetch_assoc mit Tabellenalias erhalten

Der Code sieht wie folgt aus:

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

Und der PHP-Code danach:

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

Für die "username" Zeile Ich bin nicht einen Fehler bekommen, aber nichts angezeigt wird. Für den zweiten bekomme ich einen Index undefinierten Fehler. (Dies ist nur ein Ausschnitt des Codes)

+0

wo ist dein mysqli_query –

+0

Wie ich sagte, das ist nur ein Ausschnitt. Wenn ich den Alias ​​lösche, "funktioniert" der Code, aber nichts wird angezeigt ... – user3174027

+0

$ result = mysqli_query ($ conn, $ sql) –

Antwort

-1

Ändern Sie die SQL-Abfrage, wie folgend,

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

dann den PHP-Code ändern, wie folgend,

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