前もって感謝します!
オンラインで見つけたチュートリアルに基づいて作成した簡単なmysqlとphpのブログがあります。私ができるようになりたいのですが、どうすればいいのかわかりません。これは次のとおりです。
各投稿のコメントごとに写真(アバター)を表示してほしい。選択される画像は、コメントの投稿者:領域の名前に基づいています。たとえば、管理者である私がスレッドにコメントを残したとします。私の名前は'$_SESSION'変数を介して自動的に取得されるため、毎回入力する必要はありません。コメントがブログスレッドページに表示されると、コメント投稿者:管理者が表示されます。この名前はdbに保存され、phpechoステートメントで取得されます。
したがって、このアバターコードで実行できるようにするのは、1)コメント投稿者:テキストが表示されている領域を確認する2)テキストを読む3)管理者と表示されていることを確認し、その横に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++;
}
}
?>
これは、(ゲスト画像)(ゲスト画像)(ゲスト画像)(ゲスト画像)(ゲスト画像)(ゲスト画像)(管理者画像)(ゲスト画像)(ゲスト画像)(ゲスト画像)として表示されます。
何かを一緒に投げるのに助けがあれば素晴らしいです!シンプルにしようとしています!
編集:
これは、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;
}
?>