![]() |
PHP'de kapak fotoğrafının silinmesi Merhaba arkadaşlar, bir CMS yapmaya çalışıyorum fakat takıldığım bir yer yine fotoğraf ile alakalı. Sayfa ekle kısmında kapak fotoğrafını ekleme işlemini yaptım ancak sayfa düzenle kısmında kapak fotoğrafını hiç bir şekilde güncelleme yapmama rağmen sadece yazı içini değiştirmeme rağmen güncellediğimde veritabanında boş dönüyor. Şu şekilde bir şey istiyorum, ben kapak fotoğrafı eklersem güncelleme yapsın eklemezsem eski veri aynı şekilde kalsın. Bunu en basit nasıl yapabilirim acaba? |
if else ile yapıcaksınız mesela if resim varsa update resim işlemleri olacak else ise veritabanından aynı veriyi çekip aynı veriyi update yaptıracaksın veya güncelleme tablosuna o veriyi ekletmeyip güncelleme işlemi yaptırtmalısın . |
Alıntı:
bunun için düzenleme sayfasında iken gelen verilerin güncellendiği alanda öncelikle post alanından resim geliyor mu gelmiyorsa veritabnında su alanı kullan şeklinde bir if sorgusu yazmanız gerekir. Örneğin: if(empty($_POST["resimname"])){ $resim = "Veritabanında ilgili alandaki resim"; }else{ $resim = $_POST["resimname"]; } gibi |
Alıntı:
if(post('submit')){ $dizin = PATH . '/public/upload/'; $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); $work_title = post('work_title'); $work_url = post('work_url'); if(!post('work_url')){ $work_url = permalink($work_title); } $work_content = post('work_content'); $work_seo = json_encode(post('work_seo')); if(!$work_url || !$work_content || !$work_title){ $error = 'Lütfen tüm alanları doldurun!'; }else{ $query = $db->from('works') ->where('work_url', $work_url) ->where('work_id', $id, '!=') ->first(); if($query){ $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.'; }else{ $query = $db->update('works') ->where('work_id', $id) ->set([ 'work_title' => $work_title, 'work_content' => $work_content, 'work_url' => $work_url, 'work_seo' => $work_seo, 'work_thumbnail'=> $work_thumbnail ]); if($query){ header('Location:' . admin_url('works')); }else{ $error = 'Bir sorun oluştu!'; } } } } |
Alıntı:
Denermisin hocam, metin olarak belirttiğim yere select işlemini uygula ama önce. if(post('submit')){ //// modexi if(empty($_POST["work_thumbnail"])){ $work_thumbnail = "Buraya select işlemi yaparak ilgili id nin resmini getiren sorguyu yazın"; }else{ $dizin = PATH . '/public/upload/'; $work_thumbnail = $dizin . basename($_FILES['work_thumbnail']['name']); } //// modexi // $dizin = PATH . '/public/upload/'; // $yuklenecek_dosya = $dizin . basename($_FILES['work_thumbnail']['name']); $work_title = post('work_title'); $work_url = post('work_url'); if(!post('work_url')){ $work_url = permalink($work_title); } $work_content = post('work_content'); $work_seo = json_encode(post('work_seo')); if(!$work_url || !$work_content || !$work_title){ $error = 'Lütfen tüm alanları doldurun!'; }else{ $query = $db->from('works') ->where('work_url', $work_url) ->where('work_id', $id, '!=') ->first(); if($query){ $error = '<strong>' . $work_title . '</strong> adında referans zaten mevcut.'; }else{ $query = $db->update('works') ->where('work_id', $id) ->set([ 'work_title' => $work_title, 'work_content' => $work_content, 'work_url' => $work_url, 'work_seo' => $work_seo, 'work_thumbnail'=> $work_thumbnail ]); if($query){ header('Location:' . admin_url('works')); }else{ $error = 'Bir sorun oluştu!'; } } } } |
Alıntı:
Array ( [work_thumbnail] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )Sanırım çözemeyeceğim bu sorunu. |
Alıntı:
formdan ne geliyor hocam en başa bir $_FILES['work_thumbnail']['name'] şeklinde bir değişkene atıp echo yaptırır mısın? |
Alıntı:
|
Eğer bir dosya post edilmediyse sorguda thumbnail alanını güncellemeyeceksin, thumbnail post edildiyse tüm alanları güncelleyeceksin. Yani Eğer $_FILES['work_thumbnail'] değişkeni yoksa veritabanında 3 alanı güncelleyeceksin. Yok Eğer $_FILES['work_thumbnail'] değişkeni varsa yani resim sumbit edildiyse resmi ilgili alana kaydedip veri tabanındaki tüm alanları güncelleyeceksin. Şu anda resim gönderilmese de veritabanındaki resim alanını güncelleyen bir sorgu çalıştırıyorsun ve boş veri yazdığın için resmi silmiş oluyorsun. |
| Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:47:14. |
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.