php 如何 link 评论 sql 博客 sql
php How to link comment sql to the blog sql
第一次来,希望大家多多帮助。
我创建了一个博客系统,供我的员工通过管理员登录系统使用。还有我的 customers/viewers 使用的登录系统和注册系统。所以现在我为博客系统创建了一个评论部分,人们可以在其中发表评论。问题是每个博客上的评论都是一样的。如何才能link评论到每个blogID?
<?php
ob_start();
require('config.php');
session_start();
$id = $_SESSION['user'];
// if session is not set this will redirect to login page
if( !isset($_SESSION['user']) ) {
$buttonlog = 'Login';
$smglog = 'Log nu snel in!';
}if(isset($_SESSION['user'])) {
$smglog = ' Logout';
$buttonlog = ' Mijn account';
}
// select loggedin users detail
$sql = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
$userRow = mysql_fetch_array($sql);
$sql1 = mysql_query("SELECT * FROM `comments`");
$userRow1 = mysql_fetch_array($sql1);
?>
<?php require('includes/config.php');
$stmt = $db->prepare('SELECT postID, postTitle, postCont, postDate, imgBackground, imgNewspost FROM blog_posts WHERE postID = :postID');
$stmt->execute(array(':postID' => $_GET['id']));
$row = $stmt->fetch();
//if post does not exists redirect user.
if($row['postID'] == ''){
header('Location: ./');
exit;
}
?>
<?php
function setComments(){
if(isset($_POST['commentSubmit'])){
$id = $_POST['id'];
$username = $_POST['username'];
$date = $_POST['date'];
$message = $_POST['message'];
mysql_query("INSERT INTO `comments` (id, username, date, message) VALUES ('$id','$username', '$date', '$message')");
}
}
?>
<?php
function deleteComments(){
if(isset($_POST['DeleteComment'])){
$id = $_POST['id'];
mysql_query("DELETE FROM `comments` WHERE `comments`.`id` = '$id'");
}
}
?>
<?php
if (isset($_SESSION['user'])){
echo "<form method='POST' action='".setComments()."'>
<input type='hidden' name='id' value=''>
<input type='hidden' name='username' value='".$_SESSION['user']."'>
<input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'>
<textarea name='message'> </textarea>
<br>
<input style='' type='submit' name='commentSubmit' value='REAGEER'>
</form>";
}else{
echo " Log in om te reageren";
}
?>
</div>
<div class="reacties"><br></div>
<?php
$sql = mysql_query("SELECT * FROM `comments`");
while ($row = mysql_fetch_assoc($sql)){
$id= $row['username'];
$sql2 = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
if ($row2 = mysql_fetch_assoc($sql2)){
echo "<div class='commentsDiv'>";
echo "<img style='margin: 5px; left: -25px; width: 100px; height: 100px; border: 1px black solid;position: relative; display: inline;'src='".$row2['image']."'>";
echo '<p style="color: #b73a09;font-size: 16px; font-weight: bold; top: 120px; left: 0px; display: inline; position: absolute;"> '.$row2['uname'].'</p>';
echo '<p style="color: #44444; font-size: 10px; left: 5px; top: -10px; display: inline; position: absolute;"> '.$row['date'].'</p>';
echo '<p style="font-family: Poppins, sans-serif; color: #44444; text-align: justify; padding-left: 150px; top: -125px; position: relative;"> '.nl2br($row['message']);
echo "";
if(isset($_SESSION['user'])){
if($_SESSION['user'] == $row2['id']){
echo "<form class='commentDelete' method='POST' action='".deleteComments()."'>
<input type='hidden' name='id' value='".$row['id']."'>
<button name='DeleteComment'>Delete</button>
</form>
<form class='commentEdit' method='POST' action='editComments.php'>
<input type='hidden' name='id' value='".$row['id']."'>
<input type='hidden' name='username' value='".$row['username']."'>
<input type='hidden' name='date' value='".$row['date']."'>
<input type='hidden' name='message' value='".$row['message']."'>
<button>Edit</button>
</form>";
}else {
echo "<form class='commentEdit' method='POST' action='replycomment.php'>
<input type='hidden' name='id' value='".$row['id']."'>
<button type=''>Reply</button>
</form>";
}
} else{
echo "<p class='commentMessage'> Je moet inglogd zijn om te reageren! </p>";
}
echo "</div>";
}
}
?>
试试这个查询:
<?php
$id = $_SESSION['user'];
$sql2 = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
?>
您正在获取所有评论并根据您显示评论的 ID,因此根据会话用户 ID 获取评论。
当您在 database.Send 博客的评论 table 中输入用户评论时,-post-id(每个博客 post 唯一)以及表格的其余部分。你可以使用像这样的隐藏输入来完成
<input type="hidden" name="blogpost_id" id="blog_entry" value="<?php echo $postId; ?>"/>
并且当您在博客 post 的页面 select 上加载来自评论 table 的评论时,并使用该博客 -post-id 对它们进行排序。像这样
$query = "SELECT * FROM blog_comments WHERE blogpost_id='{$postId}';
$result = mysqli_query($connection,$query);
第一次来,希望大家多多帮助。
我创建了一个博客系统,供我的员工通过管理员登录系统使用。还有我的 customers/viewers 使用的登录系统和注册系统。所以现在我为博客系统创建了一个评论部分,人们可以在其中发表评论。问题是每个博客上的评论都是一样的。如何才能link评论到每个blogID?
<?php
ob_start();
require('config.php');
session_start();
$id = $_SESSION['user'];
// if session is not set this will redirect to login page
if( !isset($_SESSION['user']) ) {
$buttonlog = 'Login';
$smglog = 'Log nu snel in!';
}if(isset($_SESSION['user'])) {
$smglog = ' Logout';
$buttonlog = ' Mijn account';
}
// select loggedin users detail
$sql = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
$userRow = mysql_fetch_array($sql);
$sql1 = mysql_query("SELECT * FROM `comments`");
$userRow1 = mysql_fetch_array($sql1);
?>
<?php require('includes/config.php');
$stmt = $db->prepare('SELECT postID, postTitle, postCont, postDate, imgBackground, imgNewspost FROM blog_posts WHERE postID = :postID');
$stmt->execute(array(':postID' => $_GET['id']));
$row = $stmt->fetch();
//if post does not exists redirect user.
if($row['postID'] == ''){
header('Location: ./');
exit;
}
?>
<?php
function setComments(){
if(isset($_POST['commentSubmit'])){
$id = $_POST['id'];
$username = $_POST['username'];
$date = $_POST['date'];
$message = $_POST['message'];
mysql_query("INSERT INTO `comments` (id, username, date, message) VALUES ('$id','$username', '$date', '$message')");
}
}
?>
<?php
function deleteComments(){
if(isset($_POST['DeleteComment'])){
$id = $_POST['id'];
mysql_query("DELETE FROM `comments` WHERE `comments`.`id` = '$id'");
}
}
?>
<?php
if (isset($_SESSION['user'])){
echo "<form method='POST' action='".setComments()."'>
<input type='hidden' name='id' value=''>
<input type='hidden' name='username' value='".$_SESSION['user']."'>
<input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'>
<textarea name='message'> </textarea>
<br>
<input style='' type='submit' name='commentSubmit' value='REAGEER'>
</form>";
}else{
echo " Log in om te reageren";
}
?>
</div>
<div class="reacties"><br></div>
<?php
$sql = mysql_query("SELECT * FROM `comments`");
while ($row = mysql_fetch_assoc($sql)){
$id= $row['username'];
$sql2 = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
if ($row2 = mysql_fetch_assoc($sql2)){
echo "<div class='commentsDiv'>";
echo "<img style='margin: 5px; left: -25px; width: 100px; height: 100px; border: 1px black solid;position: relative; display: inline;'src='".$row2['image']."'>";
echo '<p style="color: #b73a09;font-size: 16px; font-weight: bold; top: 120px; left: 0px; display: inline; position: absolute;"> '.$row2['uname'].'</p>';
echo '<p style="color: #44444; font-size: 10px; left: 5px; top: -10px; display: inline; position: absolute;"> '.$row['date'].'</p>';
echo '<p style="font-family: Poppins, sans-serif; color: #44444; text-align: justify; padding-left: 150px; top: -125px; position: relative;"> '.nl2br($row['message']);
echo "";
if(isset($_SESSION['user'])){
if($_SESSION['user'] == $row2['id']){
echo "<form class='commentDelete' method='POST' action='".deleteComments()."'>
<input type='hidden' name='id' value='".$row['id']."'>
<button name='DeleteComment'>Delete</button>
</form>
<form class='commentEdit' method='POST' action='editComments.php'>
<input type='hidden' name='id' value='".$row['id']."'>
<input type='hidden' name='username' value='".$row['username']."'>
<input type='hidden' name='date' value='".$row['date']."'>
<input type='hidden' name='message' value='".$row['message']."'>
<button>Edit</button>
</form>";
}else {
echo "<form class='commentEdit' method='POST' action='replycomment.php'>
<input type='hidden' name='id' value='".$row['id']."'>
<button type=''>Reply</button>
</form>";
}
} else{
echo "<p class='commentMessage'> Je moet inglogd zijn om te reageren! </p>";
}
echo "</div>";
}
}
?>
试试这个查询:
<?php
$id = $_SESSION['user'];
$sql2 = mysql_query("SELECT * FROM `userlogin` WHERE `id` = '$id'");
?>
您正在获取所有评论并根据您显示评论的 ID,因此根据会话用户 ID 获取评论。
当您在 database.Send 博客的评论 table 中输入用户评论时,-post-id(每个博客 post 唯一)以及表格的其余部分。你可以使用像这样的隐藏输入来完成
<input type="hidden" name="blogpost_id" id="blog_entry" value="<?php echo $postId; ?>"/>
并且当您在博客 post 的页面 select 上加载来自评论 table 的评论时,并使用该博客 -post-id 对它们进行排序。像这样
$query = "SELECT * FROM blog_comments WHERE blogpost_id='{$postId}';
$result = mysqli_query($connection,$query);