大家好,我一直在努力寻找解决方案。我试过这个 Nested array. Third level is disappearing 和这Trying to get threaded/nested comments in PHP和许多其他方式,但可能是由于我缺乏知识我无法得到所需的结果。这就是我寻求帮助的原因。 我想为我的新闻网站创建嵌套注释。嵌套评论OOP php
我在mysql用CommentID和PARENTID表
有一个类帖子里我得到的所有分配的注释
case Comments:
if ($this->iPostID != 0) {
$sSQL = "SELECT CommentID, ParentID FROM Comment WHERE PostID=" . $this->iPostID;
$rsComment = $this->dDatabase->query($sSQL);
while ($aComment = $this->dDatabase->fetch_array($rsComment)) {
$sComment = new comment();
$sComment->load($aComment['CommentID']);
$this->aComments[] = $sComment;
}
}
return $this->aComments;
break;
即数组我得到的形式$这个 - > aComments:
Array
(
[0] => comment Object
(
[iCommentID:comment:private] => 1
[iDatePosted:comment:private] => 17 July 2012
[sContent:comment:private] => Very nice it works now
[iUserID:comment:private] => 1
[iPostID:comment:private] => 1
[iParentID:comment:private] => 0
[dDatabase:comment:private] => database Object
(
[sqliConnection:database:private] => mysqli Object
(
[affected_rows] => 1
[client_info] => 5.5.9
[client_version] => 50509
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[field_count] => 6
[host_info] => Localhost via UNIX socket
[info] =>
[insert_id] => 0
[server_info] => 5.5.9
[server_version] => 50509
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 2929
[warning_count] => 0
)
)
)
...
[3] => comment Object
(
[iCommentID:comment:private] => 4
[iDatePosted:comment:private] => 22 July 2012
[sContent:comment:private] => thies is the first reply for a comment
[iUserID:comment:private] => 4
[iPostID:comment:private] => 1
[iParentID:comment:private] => 1
[dDatabase:comment:private] => database Object
(
[sqliConnection:database:private] => mysqli Object
(
[affected_rows] => 1
[client_info] => 5.5.9
[client_version] => 50509
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[field_count] => 6
[host_info] => Localhost via UNIX socket
[info] =>
[insert_id] => 0
[server_info] => 5.5.9
[server_version] => 50509
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 2929
[warning_count] => 0
)
)
)
这是我得到我想要这个数组做任何事,每次错误
Fatal error: Cannot use object of type comment as array in /Applications/MAMP/htdocs/News/includes/thread.php on line 15
的Thread.PHP是http://www.jongales.com/blog/2009/01/27/php-class-for-threaded-comments/
完全相同的副本任何人都可以帮我请。
谢谢。
'comment'是一个对象,而不是一个数组。您可以使用'$ comment-> iCommentID'来获取您的值,或者使用[ArrayObject](http://php.net/manual/en/class.arrayobject.php)允许对象作为数组工作。 – Romain 2012-07-22 08:02:05
仔细阅读您的错误消息。它阐明了这个问题。数据结构中的每个注释行都是一个*对象*,并且您试图以*数组*的形式访问它,就像您链接到的示例一样。将所有访问从'$ comment ['parent_id']'转换为'$ comment-> parent_id'。 (另外,'mutithreading'标签不适合这个问题。) – DCoder 2012-07-22 08:02:21
感谢您的快速回复我会尝试您的建议。并抱歉标签我是一个新的这个网站)) – 2012-07-22 08:13:13