基于post的用户名在php mysql博客上显示图像

时间:2011-11-06 15:54:32

标签: php mysql database comments avatar

提前致谢!

我有一个简单的mysql和php博客,我是根据我在网上找到的教程构建的。我希望能做什么,但不知道如何去做,是这样的:

我想在每个帖子上显示每张评论的图片(头像)。选择的图片将基于评论的“发布者:”区域中的名称。例如:让我说管理员在线程上发表评论。我的名字会通过'$ _SESSION'变量自动拉入,所以我不必担心每次都输入。当评论显示在博客主题页面上时,它显示评论者:管理员。此名称存储在db中,并使用php echo语句引入。

所以我想要这个头像代码能够做到的是 1)查看评论时间:文本的区域 2)阅读文字 3)看到它显示Admin并在其旁边显示admin.png图像。如果它在评论依据:区域中看到除Admin以外的任何内容,那么它将显示类似guest.png的内容

以下是我在stackoverflow和Google搜索中找到的一段代码。它可以工作,但它会将客户图像拉入6次,然后是实际的admin.png图像,然后是客户图像3次。并且它在每个线程的EACH注释上显示这种方式!当我向该线程添加新线程和新注释时,它会在每个注释上显示的多个图像的末尾再次添加访客图像。我把它设置错了吗?

<?
$sql = "SELECT comment_user FROM comments";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) != 0) {
    $counter = $starting + 1;
    $pathImg = "images/";
    while ($row = mysql_fetch_array($result)) {
        //calculate url image
        $pathFile = $pathImg . $row['comment_user'] . ".png";
        if (!file_exists($pathFile)) {
            $pathFile = $pathImg . "guest.png";
        }
        ?>
<img src="<?=$pathFile?>" alt="<?=$row['comment_user']?>">
</p>
<?
       $counter++;
    }
}
?>

显示为(访客图像)(访客图像)(访客图像)(访客图像)(访客图像)(访客图像)(管理员图像)(访客图像)(访客图像)(访客图像)。

任何将东西放在一起的帮助都会很棒!试着保持简单!

编辑:

这是评论的显示方式,以及FlyingGuy答案中的代码。

<?php

foreach ($post['comments'] as $comment){

$commentCount = 0 ;
$sql = "SELECT comment_user FROM comments";
$result = mysql_query($sql) or die(mysql_error());

while ($row = mysql_fetch_array($result)) {
$commentCount++ ;   
$pathImg = "images/";  
$pathFile = $pathImg . $row['comment_user'] . ".png";

if (!file_exists($pathFile)) {
$pathFile = $pathImg . "guest.png";
}

echo "<img src=\"". $pathFile ."\" alt=\"". $row['comment_user'] ."\"\><br>";

}
?>
<h4>By <?php echo $comment['user']; ?> on <?php echo $comment['date']; ?></h4>
<p><?php echo $comment['body']; ?></p>
<hr />

<?php

}

?>

这是函数查看和添加注释的方式:

function get_comments($pid){

$pid = (int)$pid;

$sql = "SELECT `comment_body` AS `body`, `comment_user` AS `user`, DATE_FORMAT(`comment_date`, '%m/%d/%Y') AS`date` FROM `comments` WHERE `post_id` = {$pid}";

$comments = mysql_query($sql);

$return = array();
while (($row = mysql_fetch_assoc($comments)) !== false){
$return[] = $row;
}

return $return;

}

// adds a comment
function add_comment($pid, $user, $body){

if (valid_pid($pid) === false){
return false;
}

$pid = (int)$pid;

$user = mysql_real_escape_string(htmlentities($user));
$body = mysql_real_escape_string(nl2br(htmlentities($body)));

mysql_query("INSERT INTO `comments` (`post_id`, `comment_user`, `comment_body`, `comment_date`) VALUES ({$pid}, '{$user}', '{$body}', NOW())");
return true;
}

?>

0 个答案:

没有答案