留言簿不允许我匿名输入

时间:2019-01-31 00:59:52

标签: php sql

问题解决了,非常感谢大家的参与

1 个答案:

答案 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 JOININNER JOIN will only return results that exists on the two table being JOIN-ed 在这种情况下为userskontakt。即使没有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 bnuser。如果特定值为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>'; 
  }

上面的代码使用三元运算符? :对。

对不起,我来不及决定为这个问题写一个正确的答案。

相关问题