$rget_comments = mysql_query("SELECT DISTINCT comment.id, comment.comment_name, comment.comment_body FROM rs_comments AS comment WHERE comment.comment_parent ='0' ORDER BY comment.id ASC");
while($get_comment = mysql_fetch_array($rget_comments))
{
echo '+ <a href="comment.php?id=' . $get_comment['id'] . '">' . $get_comment['comment_name'] . '</a><br />';
echo $get_comment['body'] . '<br />';
$rget_comments = mysql_query("SELECT DISTINCT
(sub_comment.id) AS sub_id, (sub_comment.comment_name) AS sub_comment_name, (sub_comment.comment_body) AS sub_comment_body
FROM rs_comments AS sub_comment WHERE sub_comment ON sub_comment.comment_parent = '1'");
while($get_comment = mysql_fetch_array($rget_comments))
{
echo '- <a href="comment.php?id=' . $get_comment['sub_id'] . '">' . $get_comment['sub_comment_name'] . '</a><br />';
echo $get_comment['sub_body'] . '<br />';
}
}
私のテーブル情報:はどのように私は1つのクエリでこれらの2つの選択クエリを使用します
$rget_comments = mysql_query("
SELECT DISTINCT
comment.id, comment.comment_name, comment.comment_body, (sub_comment.id) AS sub_id, (sub_comment.comment_name) AS sub_comment_name, (sub_comment.comment_body) AS sub_comment_body
FROM rs_comments AS comment
LEFT OUTER JOIN rs_comments AS sub_comment ON sub_comment.comment_parent = comment.id
WHERE comment.comment_parent ='0'
GROUP BY comment.id
ORDER BY comment.id ASC");
while($get_comment = mysql_fetch_array($rget_comments))
{
echo '+ <a href="comment.php?id=' . $get_comment['id'] . '">' . $get_comment['comment_name'] . '</a><br />';
echo $get_comment['body'] . '<br />';
echo '- <a href="comment.php?id=' . $get_comment['sub_id'] . '">' . $get_comment['sub_comment_name'] . '</a><br />';
echo $get_comment['sub_body'] . '<br />';
}
結果:私は、クエリを得たが、最初の行だけが返されます
CREATE TABLE IF NOT EXISTS `rs_comments` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`comment_type` varchar(255) NOT NULL,
`comment_post_ID` int(11) NOT NULL,
`comment_parent` int(11) NOT NULL,
`comment_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`comment_body` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `rs_comments` (`id`, `comment_type`, `comment_post_ID`, `comment_parent`, `comment_name`,`comment_body`) VALUES
(1, 'post', 1, 0, 'test comment', 'test comment body'),
(2, 'post', 1, 0, 'test comment 2', 'test comment 2 body'),
(3, 'post', 1, 1, 'sub comment 1', 'sub comment 1 body'),
(4, 'post', 1, 1, 'sub comment 2', 'sub comment 2 body');
:
+test comment
test comment 1 body
-sub comment 1
sub comment 1 body
+test comment 2
test comment 2 body
予想結果:
+test comment
test comment 1 body
-sub comment 1
sub comment 1 body
-sub comment 2
sub comment 2 body
+test comment 2
test comment 2 body
あなたはXSSを言うことはできますか? – PeeHaa
あなたのクエリは両方の行を返すか、あるいはPHPが両方の行をエコーしないだけです。このコードを試してみると、どちらも私の仕事です。 – GDP
申し訳ありませんが、私は動作しません英語 で良いじゃない私 結果は次のようにする必要があります: +テストコメント テストコメント1体 -subコメント1 サブコメント1体 -subコメント2 サブコメント2体 +テストコメント2 テストコメント2体 しかし、今これです: +テストコメント テストコメント1体 -subコメント1 サブコメント1体 +テストコメント2 テストコメント2体 – S6Stable