提前致谢!
我有一个简单的 mysql 和 php 博客,它是根据我在网上找到的教程构建的。我希望能够做的,但不知道如何去做,是这样的:
我希望在每个帖子的每条评论中都显示一张图片(头像)。选择的图片将基于评论的“发布者:”区域中的名称。例如:假设我,管理员,在线程上发表评论。我的名字是通过“$_SESSION”变量自动输入的,所以我不必担心每次都输入它。当评论显示在博客线程页面上时,它会显示评论者:管理员。此名称存储在 db 中,并通过 php echo 语句拉入。
所以我希望这个头像代码能够做的是 1)查看评论者:文本所在的区域 2)阅读文本 3)看到它说 Admin 并在它旁边显示 admin.png 图像。如果它在评论者:区域中看到管理员以外的任何内容,那么它将显示类似 guest.png 的内容
这是我在 stackoverflow 和 google 搜索中找到的一段代码。它可以工作,但它会拉入 6 次来宾图像,然后是实际的 admin.png 图像,然后再拉入 3 次来宾图像。它以这种方式显示在每个线程的每个评论上!当我向该线程添加新线程和新评论时,它会在每个评论上显示的多个图像的末尾再次添加来宾图像。我设置错了吗?
<?
$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++;
}
}
?>
这显示为 (Guest Image)(Guest Image)(Guest Image)(Guest Image)(Guest Image)(Guest Image)(Admin Image)(Guest Image)(Guest Image)(Guest Image)。
将某些东西放在一起的任何帮助都会很棒!尽量保持简单!
编辑:
这就是评论的显示方式,以及 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;
}
?>