Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想做一个like按钮,但这不适用于php-mysql_Php_Mysql_Button - Fatal编程技术网

我想做一个like按钮,但这不适用于php-mysql

我想做一个like按钮,但这不适用于php-mysql,php,mysql,button,Php,Mysql,Button,这是我的代码,但它不工作,我想要一个代码,使一个类似的按钮,为每个img,如果他们按下一个按钮,需要waarde+1是要做的。但是为什么这段代码不起作用,他把它和数据库连接得很好,但他没有做任何事情waarde+1 他现在所做的是增加数据库中第一行的值,而不管单击哪个按钮 $sql="SELECT url, categorie FROM url"; if ($result=mysqli_query($conn,$sql)) { while ($row=mysqli_fetch_row($

这是我的代码,但它不工作,我想要一个代码,使一个类似的按钮,为每个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); 
?>
有人能帮我吗?

改变这个:

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这样的表名,可能会导致查询中出现问题
检查一下这段代码一开始就没有什么意义,在while循环中首先不应该使用发布的值。为按钮使用固定名称,并将需要发送的值放入按钮的“值”属性。@misorude是的,我知道,但即使这样他也不工作。即使进行编辑,该部分仍在while循环中-修复该部分。现在你根本没有提交任何值-button元素的value属性在哪里?@misorude但如果我这样做,他总是在最后才提交,你点击哪个按钮并不重要
$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); 
?>