2016-03-26 5 views
1

Ok、最終行です。私は自分のウェブサイトに画像ギャラリーを持っています。私はアップロードし、私のMysqliデータベースに画像を取得することができます。複数の画像はプレースホルダdivに配置され、画像の周りに小さなボックスと画像の名前が表示されます。 PHPでリンクを解除して動作するイメージごとにDelete関数があります。しかし、画像を削除するたびに、画像のボックスと名前が表示されます。php変数のdivまたはplace divのリンクを解除します。

イメージのリンクを解除するだけでなく、プレースホルダが完全に削除されるようにdiv全体を編集する方法はありますか?あるいは、複数のfleを含む変数のリンクを解除する方法を知っているので、変数内に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; 
?> 

答えて

0

ファイルが正しく削除されます。

しかし、間違ったパラメータをSQLクエリに渡しています。 $idが定義されていません$stmt->bind_param('s', $id);

id_uploadの列が整数であるとします。この行を次のように置き換えます。

$stmt->bind_param('i', (int)$_GET['id']);