php отвязать div или поместить div в переменную

Хорошо, суть в том. У меня есть галерея изображений на моем сайте. Я могу загружать и извлекать изображения в свою базу данных Mysqli. Несколько изображений помещаются в div-заполнители, которые показывают маленькую рамку вокруг изображения и имя изображения. У меня есть функция удаления для каждого изображения, которая работает с отвязкой PHP. Но всякий раз, когда я удаляю изображение, поле и имя изображения все равно появляются.

Есть ли способ не только удалить ссылку на изображение, но и весь div, чтобы заполнитель полностью удалялся? Или есть способ поместить div внутри переменной, потому что я знаю, как разорвать связь с переменной, содержащей несколько файлов. Вот мой код

Div называется «медиа».

    <ul class="media-list">
      <?php
      include "config.php"; //database connection
      $res = $mysqli->query("SELECT * FROM upload_data");
      while ($row = $res->fetch_assoc()):
      ?> 
    <div class="media">    

   <a class="media-left" href="#">
   <!--  <img src="upload/<?php echo $row['file_name'] ?>" alt="<?php echo $row['file_name'] ?>"> -->
   </a>
        <div class="img"><?php if (isset($_SESSION['email'])) 

            {
        echo '<a href="delete.php?id=&nm=<?php echo $row[\'file_name\'] ?>">Delete</a>';} ?>

  <a target="_blank" href="javascript:popImage('upload/<?php echo $row['file_name'] ?>','<?php echo $row['file_name'] ?>')">
    <img width="300" height="200" src="upload/<?php echo $row['file_name'] ?>" alt="<?php echo $row['file_name'] ?>">
            </a>  
        </div>
        </div>

    <?php
      endwhile;
      ?>

Вот также код отмены связи, если вам интересно:

<?php
include "config.php";


if(isset($_GET['id'])):
  $hap = unlink('upload/'.$_GET['nm']);
  if($hap){
     $stmt = $mysqli->prepare("DELETE FROM upload_data WHERE id_upload=?");
     $stmt->bind_param('s', $id);

     $id = $_GET['id'];

     if($stmt->execute()):
          echo "<script>location.href='gallery.php'</script>";
     else:
          echo "<script>alert('".$stmt->error."')</script>";
     endif;
  } else{
    echo "<script>alert('No Delete File From Harddisk')</script>";
    echo "<script>location.href='gallery.php'</script>";
  }
endif;
?>

person JohnMichael    schedule 26.03.2016    source источник


Ответы (1)


Файл удаляется корректно.

Но вы передаете неверный параметр в SQL-запрос. $id не определено в строке $stmt->bind_param('s', $id);

Предположим, что столбец id_upload является целым числом. Замените строку на эту:

$stmt->bind_param('i', (int)$_GET['id']);
person Petr Hejda    schedule 26.03.2016