Я хочу отобразить строки из таблицы comments, где есть комментарии, сделанные в таблице entries. Но не показывать их, если комментарии пусты. В моем приведенном ниже коде в настоящее время отображаются комментарии, сделанные к записям в блоге, но не отображаются, если они пусты. Другими словами: появляются как записи в блоге, так и комментарии, но когда вы повторяете записи, но не имеете комментариев, даже ничего не выводится . Оператор echo в остальном даже не работает. Я почти уверен, что делаю все неправильно. У меня есть код там, где я это делал.

//if a blog post was made
//echo all the blog post
//If you select a particular blog post
//Echo that particular blog post

if (!empty($postID)) {
  $command = "select t1.blogID t1blogID, t1.author t1author, t1.date t1date, 
             t1.entry, t2.commentID, t2.author t2author, t2.date t2date, 
             t2.comments from $table_name t1, $table_name2 t2 
             where t1.blogID = t2.blogID and t1.blogID = $postID";
  $result = $db->query($command);
while ($data = $result->fetch_object()) {
  // I figured I'd create a variable here
  $postID = $data->t1blogID; 
  $t1author = $data->t1author;
  $t1date = $data->t1date;
  $entry = $data->entry;
  $commentID = $data->commentID;
  $t2author = $data->t2author;
  $t2date = $data->t2date;
  $comments = $data->comments;

  //So I can create this conditional statement 
  // if there is no comment
  if (!empty($commentID)) {
   echo "<TR><TD>Blog ID ".$postID."</TD>";
   echo "<TD>".$t1author."</TD>";
    echo "<TD>".$t1date."</TD>";
    echo "<TD>".$entry."</TD></TR>\n";   
    echo "<TR><TD>Comment ID ".$commentID."</TD>";
    echo "<TD>".$t2author."</TD>";
    echo "<TD>".$t2date."</TD>";
    echo "<TD>".$comments."</TD></TR>\n";
  }
  else {
    echo "<TR><TD>Blog ID ".$postID."</TD>";
    echo "<TD>".$t1author."</TD>";
    echo "<TD>".$t1date."</TD>";
    echo "<TD>".$entry."</TD></TR>\n";     
  }
  }
result->free();
0
mythoslife 20 Дек 2013 в 20:21

2 ответа

Лучший ответ

Попробуйте присоединиться к двум столам слева:

select t1.blogID t1blogID, t1.author t1author, t1.date t1date, t1.entry, t2.commentID, t2.author t2author, t2.date t2date, t2.comments from $table_name t1 LEFT JOIN $table_name2 t2 ON t1.blogID = t2.blogID where t1.blogID = $postID

Должно сработать.

0
Riad 20 Дек 2013 в 21:05

Я не могу комментировать, поэтому сделаю это здесь. Я не уверен, что ваш SQL правильный, разве это не JOIN?

Но очевидно, что $ commentID не пуст, поэтому попробуйте:

if($commentID > 0)
0
YRM 20 Дек 2013 в 16:31