• 10-02-2023, 11:21:10
    #1
    Merhabalar. Bir düzenleme işlemim var.
    İstiyorum ki eğer resimi post edersem resimi güncelle ama etmezsem veri tabanımdaki resim kalsın istiyorum
    Bunu nasıl yaparım?

    if($_POST['image'] != null){
        $sorgu = $pdo->prepare("UPDATE posts SET title=?, url=?, content=?, short_content=?, category_id=? WHERE id = ?");
        $sorgu->execute([$title, $url, $content, $short_content, $category_id, $edit['id'] ]);
    }else {
        $sorgu = $pdo->prepare("UPDATE posts SET title=?, image=?, url=?, content=?, short_content=?, category_id=? WHERE id = ?");
        $sorgu->execute([$title, $e, $url, $content, $short_content, $category_id, $edit['id'] ]);
    }
  • 10-02-2023, 11:28:32
    #2
    Açtığınız konunun detayı, kaynakları, vb. alacağınız yanına eşittir. Bu şekilde bir anlatım için kimse yardımcı olamaz, sadece aklında canlandırdığı bir çözümü önerebilir. Konuyu, kod, görsel, vb. materyaller ile güncellerseniz, en net cevabı almış olursunuz.
  • 10-02-2023, 11:40:48
    #3
    erdalmedet adlı üyeden alıntı: mesajı görüntüle
    Açtığınız konunun detayı, kaynakları, vb. alacağınız yanına eşittir. Bu şekilde bir anlatım için kimse yardımcı olamaz, sadece aklında canlandırdığı bir çözümü önerebilir. Konuyu, kod, görsel, vb. materyaller ile güncellerseniz, en net cevabı almış olursunuz.
    Güncelledim hocam
  • 10-02-2023, 11:58:09
    #4
    Çözüm olarak şunu deneyebilirsiniz.

    1. Resim seçilmediğinde (`else`), `image` güncellemesini tamamen kaldırabilirsiniz. (Sadece opsiyonel alan `image` olduğunda bu yöntemi kullanmanızı öneririm.)

    2. Sadece `image` alanı için yeni bir sorgu oluşturabilirsiniz.

    Örnek:
    if (isset($_POST['image']) && ! empty($_POST['image'])) {
        // Eski görseli sil
        // Yeni görseli ekle
        // Görsel güncelleme sorgusunu oluştur
    }
    Öncesi ve sonrasında ne tür işlemler gerçekleşiyor bilmiyorum ama verdiğiniz kod blogu için bu şekilde çözüm önerebilirim.

    Genel mantığı kavrayabilmeniz açısından, aşağıdaki görsel de yardımcı olabilir:

  • 10-02-2023, 12:08:29
    #5
    erdalmedet adlı üyeden alıntı: mesajı görüntüle
    Çözüm olarak şunu deneyebilirsiniz.

    1. Resim seçilmediğinde (`else`), `image` güncellemesini tamamen kaldırabilirsiniz. (Sadece opsiyonel alan `image` olduğunda bu yöntemi kullanmanızı öneririm.)

    2. Sadece `image` alanı için yeni bir sorgu oluşturabilirsiniz.

    Örnek:
    if (isset($_POST['image']) && ! empty($_POST['image'])) {
        // Eski görseli sil
        // Yeni görseli ekle
        // Görsel güncelleme sorgusunu oluştur
    }
    Öncesi ve sonrasında ne tür işlemler gerçekleşiyor bilmiyorum ama verdiğiniz kod blogu için bu şekilde çözüm önerebilirim.

    Genel mantığı kavrayabilmeniz açısından, aşağıdaki görsel de yardımcı olabilir:

    Merhabalar. Hala bir resim seçmesem bile resimi boş olarak gönderiyor.,
    Eskiden şöyle bir işlem yapmıştım bu çalışıyordu ancak şu an çalışmıyor. neden bilmiyorum

    $getid = $db->prepare('SELECT * FROM mty
    WHERE id = ?');
    $getid->execute([
    $_GET['id']
    ]);
       if($edit['image'] != null){
                $sorgu = $pdo->prepare("UPDATE posts SET title=?, url=?, content=?, short_content=?, status=?, category_id=? WHERE id = ?");
                $sorgu->execute([$title, $url, $content, $short_content, $status, $category_id, $edit['id'] ]);
                }else {
                $sorgu = $pdo->prepare("UPDATE posts SET title=?, image=?, url=?, content=?, short_content=?, status=?, category_id=? WHERE id = ?");
                $sorgu->execute([$title, $e, $url, $content, $short_content, $status, $category_id, $edit['id'] ]);
                }
  • 10-02-2023, 12:57:19
    #6
     
    $updateData = [$title, $url, $content, $short_content, $category_id, $edit['id']];
    $updateFields = "title=?, url=?, content=?, short_content=?, category_id=?";
    
    if($_POST['image'] != null){
        $updateData[] = $e;
        $updateFields .= ", image=?";
    }
    
    $sorgu = $pdo->prepare("UPDATE posts SET $updateFields WHERE id = ?");
    $updateData[] = $edit['id'];
    $sorgu->execute($updateData);
  • 10-02-2023, 14:33:37
    #7
    adwerd0z1 adlı üyeden alıntı: mesajı görüntüle
     
    $updateData = [$title, $url, $content, $short_content, $category_id, $edit['id']];
    $updateFields = "title=?, url=?, content=?, short_content=?, category_id=?";
    
    if($_POST['image'] != null){
        $updateData[] = $e;
        $updateFields .= ", image=?";
    }
    
    $sorgu = $pdo->prepare("UPDATE posts SET $updateFields WHERE id = ?");
    $updateData[] = $edit['id'];
    $sorgu->execute($updateData);
    Merhaba. Yardımın için teşekkür ederim fakat işlemin işe yaramadı :c
    İmage'i seçsem bile güncelllemiyor şuan
  • 10-02-2023, 21:40:40
    #8
    Şu şekil denermisin.
    $sorgu = $pdo->prepare("UPDATE posts SET title=?, url=?, content=?, short_content=?, category_id=?");
    
    if (isset($_POST['image']) && !empty($_POST['image'])) {
      $sorgu = $pdo->prepare("UPDATE posts SET title=?, image=?, url=?, content=?, short_content=?, category_id=? WHERE id = ?");
      $sorgu->execute([$title, $e, $url, $content, $short_content, $category_id, $edit['id'] ]);
    } else {
      $sorgu->execute([$title, $url, $content, $short_content, $category_id, $edit['id'] ]);
    }