首页 > 解决方案 > 我想做一个喜欢的按钮,但这不起作用 php mysql

问题描述

这是我的代码,但它不起作用我想要一个为每个 img 创建一个类似按钮的代码,如果他们按下一个按钮,则需要 waarde + 1 来完成。但是为什么这段代码不起作用,他将它与数据库很好地连接,但他没有做任何事情 waarde +1

他现在在做什么他增加了数据库中第一行的值,你点击哪个按钮都没有关系

$sql="SELECT url, categorie FROM url";
if ($result=mysqli_query($conn,$sql))
{
    while ($row=mysqli_fetch_row($result)) {
        $url = $row[0];
?>
         <div class="col-12 col-sm-6 col-lg-3 isotope-item <?php echo $row[1]; ?>">
             <div class="image-gallery-item mb-4 pb-3">
                 <a href="<?php echo $row[0]; ?>" class="lightbox-portfolio">
                     <span class="thumb-info custom-thumb-info-1">
                         <span class="thumb-info-wrapper">
                             <span class="thumb-info-plus"></span>
                             <img src="<?php echo $row[0]; ?>" class="img-fluid" alt="">
                            <form action="" method="POST"> 
                                <button type="submit" value="<?php echo $url;?>" class="btn-floating  waves-effect waves-dark transparent" name="like">
                                    <i class="material-icons blue-text">thumb_up</i>
                                </button>
                            </form>

                         </span>
                     </span>
                 </a>
             </div>
         </div>                          

<?php 
}

    if(isset($_POST['like'])){
        $sql = "UPDATE url SET waarde = waarde + 1 WHERE url = '".$url."'";

        if ($conn->query($sql) === TRUE) {
            echo "Record updated successfully";
        } else {
            echo "Error updating record: " . $conn->error;
        }
        $conn->close();
    } 

    mysqli_free_result($result);
} 
mysqli_close($connection); 
?>

有人可以帮助我吗?

标签: phpmysqlbutton

解决方案


改变这个:

if(isset($_POST['like'])){
        $sql = "UPDATE url SET waarde = waarde + 1 WHERE url = '".$url."'";

进入这个:

if(isset($_POST['like'])){
        $value = $_POST['like'];
        $sql = "UPDATE url SET waarde = waarde + 1 WHERE url = '$value'";

因此,您将查询参数化为已发布的 url。

两个旁注:

  • 更新查询应该在 while 循环之外。不必重复多次;
  • 表 (url) 和表 (url) 中的字段不应具有相同的名称。至少对于可读性而言,这不是一个好习惯,如果您不始终指定表名,可能会导致查询出现问题url.url

推荐阅读