问题解决了,非常感谢大家的参与
答案 0 :(得分:0)
$StrSQL2 = "SELECT users.benutzername as bn,
kontakt.betreff, kontakt.nachricht
FROM users INNER JOIN kontakt
ON users.userid = kontakt.userid_fk ORDER BY datum DESC";
$abfrage = $db->query($StrSQL2);
echo 'Es wurden '.$abfrage->num_rows.' Nachrichten gefunden!<br>';
while($ausgabe = $abfrage->fetch_object()){
echo '
<b>Datum:</b> '.$ausgabe->datum.' <br>
<b>Betreff:</b> '.$ausgabe->betreff.' <br>
<b>Nachricht:</b><br> '.$ausgabe->nachricht.' <br>
<b>Benutzer:</b><br> '.$ausgabe->bn.'<br><hr>';
}
用于打印上面的留言簿条目的代码使用INNER JOIN
。 INNER JOIN
will only return results that exists on the two table being JOIN
-ed
在这种情况下为users
和kontakt
。即使没有RIGHT JOIN
,也应使用kontakt
允许检索users
。
$StrSQL2 = "SELECT users.benutzername as bn,
kontakt.betreff, kontakt.nachricht
FROM users RIGHT JOIN kontakt
ON users.userid = kontakt.userid_fk ORDER BY datum DESC";
下一个问题是您的Benutzer
字段为空,因为它源自users.benutzername as bn
表user
。如果特定值为null,则可以稍稍修改代码以显示“匿名”。像is_null
之类的东西可能值得尝试。您的代码将如下所示:
while($ausgabe = $abfrage->fetch_object()){
echo '
<b>Datum:</b> '.$ausgabe->datum.' <br>
<b>Betreff:</b> '.$ausgabe->betreff.' <br>
<b>Nachricht:</b><br> '.$ausgabe->nachricht.' <br>
<b>Benutzer:</b><br> '. !is_null($ausgabe->bn) ? $ausgabe->bn : 'Anonymous' .'<br><hr>';
}
上面的代码使用三元运算符? :
对。
对不起,我来不及决定为这个问题写一个正确的答案。