• 16-10-2018, 20:16:30
    #1
    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?
  • 16-10-2018, 20:27:55
    #2
    Kimlik 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:23
    #3
    FSahin adlı üyeden alıntı: mesajı görüntüle
    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?

    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:20
    #4
    Modexi 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
    Hocam şurada nasıl bir işlem yaptırabilirim acaba? Kafam çok karıştı içinden çıkamadım.

    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:34
    #5
    FSahin adlı üyeden alıntı: mesajı görüntüle
    Hocam şurada nasıl bir işlem yaptırabilirim acaba? Kafam çok karıştı içinden çıkamadım.

    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!';
                    }
            }
        }
    }


    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:02
    #6
    Modexi 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!';
                    }
            }
        }
    }
    Hocam ne yaparsam yapayım geriye array'i döndürüyor.

    Array
    (
        [work_thumbnail] => Array
            (
                [name] =>
                [type] =>
                [tmp_name] =>
                [error] => 4
                [size] => 0
            )
    
    )
    Sanırım çözemeyeceğim bu sorunu.
  • 16-10-2018, 22:15:42
    #7
    FSahin adlı üyeden alıntı: mesajı görüntüle
    Hocam ne yaparsam yapayım geriye array'i döndürüyor.

    Array
    (
        [work_thumbnail] => Array
            (
                [name] =>
                [type] =>
                [tmp_name] =>
                [error] => 4
                [size] => 0
            )
    
    )
    Sanırım çözemeyeceğim bu sorunu.

    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:05
    #8
    Modexi 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?
    Hocam resim yüklemeden çağırırsam boş dönüyor, yüklersem dosya adı geliyor.
  • 17-10-2018, 12:07:49
    #9
    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.