Я хочу отобразить строки из таблицы 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();
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
Должно сработать.
Я не могу комментировать, поэтому сделаю это здесь. Я не уверен, что ваш SQL правильный, разве это не JOIN?
Но очевидно, что $ commentID не пуст, поэтому попробуйте:
if($commentID > 0)
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.