• 10-12-2019, 21:10:24
    #1
    merhaba arkadaşlar ,

    aynı id birden fazla veri ekleyebiliyorum.

    ama güncelleme aşamasında sıkıntı gördüğüm nokta var.



    güncelleme sırasında veri tabanındaki verileri silip tekrar ekliyor.Ben bu olayı şöyle yapabilmem için ne gerekli ,


    güncelleme sayfasında , veri varsa güncelle ,yeni veri varsa ekle ?


    //formda kaydet butonuna basılıp basılmadığını kontrol ediyoruz.
    if (isset($_POST['kaydet'])) {
    
    $id = $_GET["id"];
    
    ########################################################################################33
    
    
    $sil=$db->prepare("DELETE from carimusteri where cariID=:id");
    $kontrol=$sil->execute(array(
    'id' => $_GET['id']
    ));
    
    
    $db->query("DELETE s FROM siparis s WHERE NOT EXISTS (SELECT * FROM carimusteri WHERE siparisID = s.siparis_id)");
    ########################################################################################33
    
    
    $musteri_id = guvenlik($_POST['musteri_id']);
    $in_out = guvenlik($_POST['in_out']);
    $fisno = guvenlik($_POST['fisno']);
    $sip_turu = guvenlik($_POST['sip_turu']);
    $sip_zaman = guvenlik($_POST['sip_zaman']);
    $s_odeme_yontemi = guvenlik($_POST['s_odeme_yontemi']);
    
    
    $toplamkdv = guvenlik($_POST['kdvtoplam']);
    $geneltoplam = guvenlik($_POST['geneltoplam']);
    $aratoplam = guvenlik($_POST['aratoplam']);
    
    
    $siparisgoster = $db->prepare("UPDATE siparisgoster SET
    
    fisno_adi=?,
    musteri_id=?,
    toplam_kdv=?,
    ara_toplam=?,
    genel_toplam=?,
    siparis_turu=?,
    fis_zaman=?,
    fis_in_out=?,
    s_odeme_yontemi=?
    where fisno_id=$id
    ");
    
    
    $siparisgoster->execute(array(
    $fisno,
    $musteri_id,
    $toplamkdv,
    $aratoplam,
    $geneltoplam,
    $sip_turu,
    $sip_zaman,
    $in_out,
    $s_odeme_yontemi
    
    ));
    
    ########################################################################################33
    
    
    
    
    
    if ($_POST['s_id']) {
    
    
    
    foreach ($_POST['s_id'] as $key => $value) {
    
    
    ########################################################################################33
    
    
    $musteri_id = guvenlik($_POST['musteri_id']);
    $stok_adi = guvenlik($_POST['stok_adi'][$key]);
    $sip_birim_fiyati = guvenlik($_POST['sip_birim_fiyati'][$key]);
    $sip_urun_adedi = guvenlik($_POST['sip_urun_adedi'][$key]);
    $sip_kdvsiz_fiyat = guvenlik($_POST['sip_kdvsiz_fiyat'][$key]);
    $sip_kdv_orani = guvenlik($_POST['sip_kdv_orani'][$key]);
    $sip_kdv_tutari = guvenlik($_POST['sip_kdv_tutari'][$key]);
    $sip_genel_toplam = guvenlik($_POST['sip_genel_toplam'][$key]);
    $s_id = guvenlik($_POST['s_id'][$key]);
    $in_out = guvenlik($_POST['in_out']);
    $fisno = guvenlik($_POST['fisno']);
    $sip_turu = guvenlik($_POST['sip_turu']);
    $sip_zaman = guvenlik($_POST['sip_zaman']);
    
    
    
    
    
    
    $urunekle = $db->prepare("INSERT INTO siparis SET
    musteri_id=?,
    stokID=?,
    stok_adi=?,
    sip_birim_fiyati=?,
    sip_urun_adedi=?,
    sip_kdvsiz_fiyat=?,
    sip_kdv_orani=?,
    sip_kdv_tutari=?,
    sip_genel_toplam=?,
    in_out=?,
    fisno=?,
    sip_turu=?,
    sip_zaman=?
    ");
    
    $urunekle->execute(array(
    $musteri_id,
    $value,
    $stok_adi,
    $sip_birim_fiyati,
    $sip_urun_adedi,
    $sip_kdvsiz_fiyat,
    $sip_kdv_orani,
    $sip_kdv_tutari,
    $sip_genel_toplam,
    $in_out,
    $fisno,
    $sip_turu,
    $sip_zaman
    ));
    
    
    
    
    
    $eklenen_siparis_id = $db->lastInsertId();
    
    
    
    
    
    ########################################################################################33
    $ogreekle=$db->prepare("INSERT INTO carimusteri SET
    cariID=:cariID,
    siparisID=:siparisID,
    cari_fisno=:cari_fisno
    ");
    
    $eklemeci=$ogreekle->execute(array(
    'cariID' => $id,
    'siparisID' => $eklenen_siparis_id,
    'cari_fisno' => $fisno
    
    ));
    
    
    ###############################################################
    ###############################################################
    ### STOK GÜNCELLE / GİRİŞ / ÇIKIŞ
    
    
    
    
    } }
    
    $db = null; //bağlantımızı sonlandırıyoruz
    if ($eklemeci) {
    header("location:siparis-listele?durum=ok");
    exit;
    } else {
    header("location:siparis-listele?durum=no");
    exit;
    }
    exit;
    }
    
    
    
    ?>
    iyi çalışmalar
  • 10-12-2019, 21:49:39
    #2
    $kontrol=$db->query("SELECT id FROM tableName where id='$id')->fetch(PDO::FETCH_ASSOC);
    $say=$kontrol->rowCount();
    if($say>0)
    {
    //Güncelleme işlemi yapsın
    } else {
    //Ekleme işlemi yapsın
    }
    Bunu mu soruyorsunuz?
  • 11-12-2019, 11:58:34
    #3
    @mertkilic0111; merhaba hocam verdiğiniz kod hata verdirdi.
    Fatal error:  Uncaught Error: Call to a member function rowCount() on bool in E:xampphtdoc****siparis-duzenle.php:102 Stack trace: #0 {main}  thrown in E:xampphtdocs****siparis-duzenle.php on line 102