• 19-08-2018, 18:31:19
    #1
    Merhabalar. Tekrardan; yeniden bir sorunla karşınızdayım. Yaklaşık 1 gündür her yerde çözümünü aradım fakat bir türlü çözemedim. Kısaca problemi anlatıyım. Veritabanına toplu resim yüklüyorum, buraya kadar hiçbir problem yok. Fakat ne zamanki checkboxlardan fotoğrafları seçip silmeye çalışsam veritabanından seçtiklerim, kayıtlı oldukları klasörden de tamamı siliniyor. Yardımcı olursanız çok sevinirim. Şimdiden teşekkür ederim.

    HTML
    <div class="image-wrap">
                        <img class="image rounded" src="<?php echo '../../../'.$userfe['url']; ?>" alt="...">
                      </div>
    // Yukarısı resimin klasörden çekilip kullanıcıya gösterildiği yer. Aşağısı ise silme işlemi yaptığım fonksiyon dosyasına resmin yolunu gönderdiğim input.
                      <input type="hidden" name="image_routes[]" value="<?php echo $userfe['url']; ?>">
    Function.php
    if(isset($_POST['portfoy-sil'])){
      $portfoy_id = $_POST['portfoy_id'];
      $check = $_POST['fotosec'];
      foreach ($check as $list) {
        $temizle = $db -> prepare('DELETE FROM portfoy_image WHERE id=:id');
        $kontrol = $temizle -> execute(array(
          'id' => $list
        ));
      if ($kontrol) {
        $yirt = $_POST['image_routes'];
        foreach ($yirt as $imagedel) {
          unlink("../../../$imagedel");
        }
        header("Location:../html/portfoy-goruntule.php?portfoy_id=$portfoy_id&current=success");
      }else{
        header("Location:../html/portfoy-goruntule.php?portfoy_id=$portfoy_id&current=fail");
      }
      }
    }
  • 19-08-2018, 18:34:20
    #2
    <input type="hidden" name="image_routes[]" value="<?php echo $userfe['url']; ?>">
    hata burada

    checkbox olmalı bu hidden degil

    <input type="checkbox" name="image_routes[<?php echo $userfe['url']; ?>]">
    • TRSaka
    TRSaka bunu beğendi.
    1 kişi bunu beğendi.
  • 19-08-2018, 19:20:18
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    <input type="hidden" name="image_routes[]" value="<?php echo $userfe['url']; ?>">
    hata burada

    checkbox olmalı bu hidden degil

    <input type="checkbox" name="image_routes[<?php echo $userfe['url']; ?>]">
    Hocam sanırım eksik atmışım html kısmını tekrardan gözden geçirebilirmisiniz? Normalde zaten bir tane checkbox var

    <div class="media-list is-grid pb-50" data-plugin="animateList" data-animate="fade"
                data-child="li">
                <ul class="blocks blocks-100 blocks-xxl-4 blocks-xl-3 blocks-lg-3 blocks-md-2 blocks-sm-2"
                  data-plugin="animateList" data-child=">li">
                  <?php while($userfe = $yapistir -> fetch (PDO::FETCH_ASSOC)){ ?>
                  <li>
                    <div class="media-item">
                      <div class="checkbox-custom checkbox-primary checkbox-lg">
                        <?php array('$fotosec'); ?>
                        <input type="checkbox" class="selectable-item" id="media_1" name="fotosec[]" value="<?php echo $userfe['id']; ?>"/>
                        <label for="media_1"></label>
    
                      </div>
                      <div class="image-wrap">
                        <img class="image rounded" src="<?php echo '../../../'.$userfe['url']; ?>" alt="...">
                      </div>
                      <input type="checkbox" name="image_routes[<?php echo $userfe['url']; ?>]">
                      <div class="info-wrap">
                        <div class="dropdown">
                          <span class="icon wb-settings" data-toggle="dropdown" aria-expanded="false" role="button"
                            data-animation="scale-up"></span>
                          <div class="dropdown-menu dropdown-menu-right" role="menu">
    
                            <a class="dropdown-item" href="javascript:void(0)"><i class="icon wb-download" aria-hidden="true"></i>İndir</a>
                            <a class="dropdown-item" href="javascript:void(0)"><i class="icon wb-trash" aria-hidden="true"></i>Sil</a>
                          </div>
                        </div>
                        <div class="title">Lorem ipsum</div>
                        <div class="time"><?php echo $userfe['in_id']; ?> Numaralı Projeye Ait</div>
                        <div class="media-item-actions btn-group">
                          <button class="btn btn-icon btn-pure btn-default" data-original-title="Edit" data-toggle="tooltip"
                            data-container="body" data-placement="top" data-trigger="hover"
                            type="button">
                            <i class="icon wb-pencil" aria-hidden="true"></i>
                          </button>
                          <button class="btn btn-icon btn-pure btn-default" data-original-title="Download"
                            data-toggle="tooltip" data-container="body" data-placement="top"
                            data-trigger="hover" type="button">
                            <i class="icon wb-download" aria-hidden="true"></i>
                          </button>
                          <button class="btn btn-icon btn-pure btn-default" data-original-title="Delete"
                            data-toggle="tooltip" data-container="body" data-placement="top"
                            data-trigger="hover" type="button">
                            <i class="icon wb-trash" aria-hidden="true"></i>
                          </button>
                        </div>
                      </div>
                    </div>
                  </li>
                <?php } ?>
                </ul>
              </div>
    Belirttiğiniz gibi yukarıda denedim fakat unlink işlemini hiç yapmamaya başladı.
  • 19-08-2018, 19:39:01
    #4
    hocam resmine javascript trigger koyman lazım onclick eventi olabilir o resime tıklandıgı zaman o resime ait checkbox hangisi ise onu bulup seçtirmeli veya css ile farklı bir işlem uygulaman gerek
    • TRSaka
    TRSaka bunu beğendi.
    1 kişi bunu beğendi.
  • 19-08-2018, 19:50:31
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    hocam resmine javascript trigger koyman lazım onclick eventi olabilir o resime tıklandıgı zaman o resime ait checkbox hangisi ise onu bulup seçtirmeli veya css ile farklı bir işlem uygulaman gerek
    İlgin ve önerilerin için çok teşekkür ederim. Kafamda yeni şimşekler çaktıktan hemen sonra while döngüsü ile denemek istedim. Sonuç? Başarılı. İhtiyacı olan arkadaşlar olursa diye php tarafını buraya koyuyorum.

    if(isset($_POST['portfoy-sil'])) {
        $portfoy_id = $_POST['portfoy_id'];
        $check = $_POST["fotosec"];
        foreach($check as $list) {
    
            $cekelim=$db->prepare("SELECT * from portfoy_image where id='".$list."'");
            //$kontrolx=$cekelim->execute(array('list' => $list));
            $cekelim->execute();
    
            $sil=$db->prepare("DELETE from portfoy_image where id=:list");
            $kontrol=$sil->execute(array('list' => $list));
    
            while($resim=$cekelim->fetch(PDO::FETCH_ASSOC)){
                $galeri_resimyol=$resim["url"];
                unlink("../../../$galeri_resimyol");
            }
    
        }
    
        if ($list) {
            Header("Location:../html/portfoy-goruntule.php?portfoy_id=$portfoy_id&current=success");
        } else {
            Header("Location:../html/portfoy-goruntule.php?portfoy_id=$portfoy_id&current=fail");
        }
    
    }