喜欢的系统,如何解决?

时间:2019-01-11 01:34:00

标签: php html sql

我有以下用于显示帖子和喜欢它们的脚本,但是如果我喜欢一个帖子,它喜欢页面上的所有帖子,我想不出另一种方式了,有人可以给我一些建议吗? / p>

<?php 
if ($sort == 1){
 $result = $conn->query("SELECT * FROM posts ORDER BY date DESC LIMIT 4 ");
}
elseif($sort == 2)
{
 $result = $conn->query("SELECT * FROM posts WHERE date > NOW() - INTERVAL 24 HOUR ORDER BY likes DESC");
}
elseif($sort == 3)
{
 $result = $conn->query("SELECT * FROM posts ORDER BY likes DESC");
}

	
		if ($result->num_rows > 0) :
		while($row = mysqli_fetch_assoc($result)) : ?>
          <div class="card mb-4">
            <img class="card-img-top" src="<?php echo $row['image1'] ?>" alt="Card image cap">
            <div class="card-body">
              <h2 class="card-title"><?php print title; ?></h2>
              <p class="card-text"><?php print text; ?></p>
              <a href="#" class="btn btn-primary">Read More &rarr;</a>
            </div>

            <div class="card-footer text-muted">
	
              Posted on <?php print $row['date'] ?> by
              <a href="#"><?php print $row['author']; ?> </a>
<?php
$id=$row['id'];					 
if($_POST['like']) {
$update = "UPDATE posts set `likes` = `likes`+1 where `id` ='$id'";
if ($conn->query($update) === TRUE) {
} else {
    echo "Error updating record: " . $conn->error;
} 
} ?> 
 <form action="" method="POST">
<button type = "submit" value = "like" name='like'style="font-size:24px"><?php echo $row['likes']; ?><i class="fa fa-thumbs-o-up"></i>
</form>

    </div>
          </div>
    <?php endwhile; endif; ?>

1 个答案:

答案 0 :(得分:0)

您的while循环包含更新查询,因此您的代码应像这样进行更改。 为了使ID看起来像您一样,您只需要使用一个隐藏字段就可以像该代码中那样发布该ID

<?php

if($_POST['like']) {
$id=$POST['id'];
$update = "UPDATE posts set `likes` = `likes`+1 where `id` ='$id'";
if ($conn->query($update) === TRUE) {
} else {
    echo "Error updating record: " . $conn->error;
} 
} ?> 

<?php 
if ($sort == 1){
 $result = $conn->query("SELECT * FROM posts ORDER BY date DESC LIMIT 4 ");
}
elseif($sort == 2)
{
 $result = $conn->query("SELECT * FROM posts WHERE date > NOW() - INTERVAL 24 HOUR ORDER BY likes DESC");
}
elseif($sort == 3)
{
 $result = $conn->query("SELECT * FROM posts ORDER BY likes DESC");
}


        if ($result->num_rows > 0) :
        while($row = mysqli_fetch_assoc($result)) : ?>
          <div class="card mb-4">
            <img class="card-img-top" src="<?php echo $row['image1'] ?>" alt="Card image cap">
            <div class="card-body">
              <h2 class="card-title"><?php print title; ?></h2>
              <p class="card-text"><?php print text; ?></p>
              <a href="#" class="btn btn-primary">Read More &rarr;</a>
            </div>

            <div class="card-footer text-muted">

              Posted on <?php print $row['date'] ?> by
              <a href="#"><?php print $row['author']; ?> </a>

 <form action="" method="POST">
 <input name="id" type="hidden" value="<?php echo $row['id']; ?>">
<button type = "submit" value = "like" name='like'style="font-size:24px"><?php echo $row['likes']; ?><i class="fa fa-thumbs-o-up"></i>
</form>

    </div>
          </div>
    <?php endwhile; endif; ?>