PHP和MySQL中的嵌套注释
发布时间:2020-12-13 18:17:39 所属栏目:PHP教程 来源:网络整理
导读:我通过论坛搜索,但无法得到权威的答案.我想以这样的方式实现嵌套的注释结构: ul liThis is the parent first comment! ul liThis is the reply for the first parent comment! ul liThis is a reply for the first reply of the parent comment!/li liThis
|
我通过论坛搜索,但无法得到权威的答案.我想以这样的方式实现嵌套的注释结构:
<ul>
<li>This is the parent first comment!
<ul>
<li>This is the reply for the first parent comment!
<ul>
<li>This is a reply for the first reply of the parent comment!</li>
<li>This is a third reply for the first parent comment!</li>
</ul>
</li>
<li>This is another reply for first parent comment!</li>
</ul>
</li>
<li>This is gonna be parent second comment!
<ul>
<li>This is a reply for the second comment!</li>
</ul>
</li>
<li>This is fourth parent comment!</li>
</ul>
我桌子的转储如下: +----+------------------------------------------------------------+--------+ | id | text | parent | +----+------------------------------------------------------------+--------+ | 1 | This is the parent first comment! | 0 | | 2 | This is gonna be parent second comment! | 0 | | 3 | This is the reply for the first parent comment! | 1 | | 4 | This is another reply for first parent comment! | 1 | | 5 | This is a reply for the first reply of the parent comment! | 3 | | 6 | This is a reply for the second comment! | 2 | | 7 | This is a third reply for the first parent comment! | 3 | | 8 | This is fourth parent comment! | 0 | +----+------------------------------------------------------------+--------+ 我知道如何使用mysql_query()和while()循环. PHP和PHP的初学者MySQL的.请帮帮我.
我为我的博客做了类似的事情.然而,我只是尝试了相同的数据.当你说嵌套注释时,你可以用这种方式使用嵌套函数:
function getComments($parent)
{
# Get the data from SQL.
# Check if it has nested comments.
if (hasComments())
getComments($child); # $child is the ID of the current comment.
}
为了实现这一点,我已将您的数据导入MySQL并尝试了以下方法: <?php
mysql_connect('localhost','root');
mysql_select_db('nestedcomments');
function getComments($parent)
{
$res = mysql_query("SELECT * FROM `nestcomm` WHERE `parent` = $parent");
if (mysql_num_rows($res))
{
echo "<ul>n";
while (($dat = mysql_fetch_array($res)) !== false)
echo "<li>",$dat["text"],getComments($dat["id"]),"</li>n";
echo "</ul>n";
}
else
echo ($parent === 0) ? 'No Comments!' : "";
}
getComments(0);
?>
正如我之前所说的,我已经使用了嵌套函数,并且正如您所说的那样输出几乎相同(没有大括号): <ul> <li>This is the parent first comment!<ul> <li>This is the reply for the first parent comment!<ul> <li>This is a reply for the first reply of the parent comment!</li> <li>This is a third reply for the first parent comment!</li> </ul> </li> <li>This is another reply for first parent comment!</li> </ul> </li> <li>This is gonna be parent second comment!<ul> <li>This is a reply for the second comment!</li> </ul> </li> <li>This is fourth parent comment!</li> </ul> 希望这会有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
