Как показать комментарии под постом, как это делает Facebook? - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь сделать похожий на стену php-скрипт на Facebook.

Он загружает из моей базы данных MySQL материал постов, фотографии и пользовательский контент, например имя пользователя и идентификатор пользователя. Он также проверяет, является ли сообщение просто комментарием к другому сообщению (parentof). Я могу представить все оригинальные посты с картинками с помощью простых тегов "do-while".

Но как я могу представить комментарии под каждым постом? Я думаю, с другим циклом do, но как?

Вот мой код:

<?php

require_once "config.php";
    $result = mysql_query('SET NAMES utf8');
    $result = mysql_query('SET CHARACTER SET utf8');
    $wallhaku = mysql_query("SELECT `wall`.`post_id`, `wall`.`parentof`, `wall`.`sentby`, `wall`.`text`, `wall`.`image_url`, `users`.`username`, `users`.`photopath`, `users`.`name`, `users`.`member_id` FROM `wall` LEFT JOIN `users` ON `wall`.`sentby` = `users`.`member_id` WHERE parentof=0 ORDER BY post_id DESC") or die (mysql_error());
    $row_wallhaku = mysql_fetch_array($wallhaku);


<table width="800" height="120" border="0" cellpadding="10">
<?php $i=0; $numberpage=1;
    do {
    $wallid = $row_wallhaku['post_id'];
    $parenthaku = mysql_query("SELECT post_id, parentof FROM wall WHERE parentof=$wallid") or die (mysql_error());
    $row_parenthaku = mysql_num_rows($parenthaku);

      <td width="120" align="left">
      <img src=<?php echo $row_wallhaku['photopath']; ?> height=    "100" width="100">
      </td>
      <td width="600" align="left">
    <a href="member.php?id=<?php echo $row_wallhaku['member_id']; ?>"><?php echo $row_wallhaku['name']?></a><br /><p><?php echo $row_wallhaku['text'];
    if($row_wallhaku['image_url']=="0") {

    <p align="right"><?php echo $row_parenthaku ?> kommenttia.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="post.php?id=<?php echo $row_wallhaku['post_id']; ?>">Lue, kommentoi</a> <?php } ?></td>
<?php $i++; if($i%$numberpage==0) echo "</tr>";
if($row_wallhaku['image_url']!="0")
    {

    <tr>
    <td width='800' colspan='2' align='center'>
    <a href="post.php?id=<?php echo $row_wallhaku['post_id']; ?>"><img src=<?php echo $row_wallhaku['image_url']; ?> height="180"></a>
    <p align="right"><?php echo $row_parenthaku ?> kommenttia.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="post.php?id=<?php echo $row_wallhaku['post_id']; ?>">Lue, kommentoi</a>
    </td>
    </tr>

    <?php
    }
</table>

1 Ответ

0 голосов
/ 19 февраля 2012

В случае, если отношение между постами одно к многим, вам нужно использовать 2 запроса. Первый запрос получит данные темы (поста). Другой запрос получит данные всех комментариев, которые "parentof" равны идентификатору темы.

$id = $_GET['id'];
$getTopic = mysql_query("SELECT * FROM posts WHERE id='$id'");
$topic = mysql_fetch_array($getTopic);

$getComments = mysql_query("SELECT * FROM posts WHERE parentOf='{$topic['id']}'");
while($comment = mysql_fetch_array($getComments))
{
 echo $comment['title']; //You should use a "view" functin which handles the HTML and staff.
}
...