提前致谢!
我有一个简单的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;
}
?>