Я хотел бы сделать как кнопку, но это не работает PHP MySQL - PullRequest
0 голосов
/ 24 октября 2018

это мой код, но он не работает. Я хочу код, который делает кнопку «Мне нравится» для каждого img, и если они нажимают кнопку, нужно сделать 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); 
?>

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 25 октября 2018

Измените это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...