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?
PHP'de kapak fotoğrafının silinmesi
9
●308
- 16-10-2018, 20:27:55Kimlik doğrulama veya yönetimden onay bekliyor.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 .
- 16-10-2018, 20:29:23FSahin adlı üyeden alıntı: mesajı görüntüle
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 - 16-10-2018, 20:36:20Hocam şurada nasıl bir işlem yaptırabilirim acaba? Kafam çok karıştı içinden çıkamadım.Modexi adlı üyeden alıntı: mesajı görüntüle
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!'; } } } } - 16-10-2018, 21:30:34FSahin adlı üyeden alıntı: mesajı görüntüle
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!'; } } } } - 16-10-2018, 21:50:02Hocam ne yaparsam yapayım geriye array'i döndürüyor.Modexi adlı üyeden alıntı: mesajı görüntüle
Array ( [work_thumbnail] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )Sanırım çözemeyeceğim bu sorunu. - 16-10-2018, 22:15:42FSahin adlı üyeden alıntı: mesajı görüntüle
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? - 16-10-2018, 22:39:05Hocam resim yüklemeden çağırırsam boş dönüyor, yüklersem dosya adı geliyor.Modexi adlı üyeden alıntı: mesajı görüntüle
- 17-10-2018, 12:07:49Eğ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.