• 14-03-2017, 02:58:35
    #1
    S.a arkadaşlar, resmen mantık dışı ama kafayı sıyırttı bu PDO bana..
    umarım bana yardımcı olursunuz. benim kaçırdığım bir detayı siz bulabilirsiniz.

    mantık olarak,where koşuluna bağlı kalarak ilgili id deki tüm verileri önce siliyorum. daha sonra form dan checkbox dan gelen verileri insert işlemi ile veritabanına eklemek istiyorum. fakat bir türlü kayıt eklenmiyor. nerde yanlış yapıyorum

    $del = $db->prepare("DELETE FROM ozellik_urun WHERE urun_id =1");
    $del->execute();
    $count = $del->rowCount();
    if(empty($count)) {
      $db->query('insert into ozellik_urun (urun_id, ozellik_id) values (1, '.$ozellik['id'].')');
      echo  $db->lastInsertId() ."<br>";
    }
    veya

    $del = $db->prepare("DELETE FROM ozellik_urun WHERE urun_id =1");
    $del->execute();
    
    $db->query('insert into ozellik_urun(urun_id, ozellik_id) values (1, '.$ozellik['id'].')');
    echo  $db->lastInsertId() ."<br>";
    her iki şekildede işlem başarısız.

    İşin garibi ekrana lastinsertid ile son eklenen kayıtların idsini basıyor ama dönüp veritabanına baktığımda kayıt yok. sonra kayıt silme(delete) satırlarını kaldırıp öyle deniyorum. bu sefer kayıtlar ekleniyor ama daha önceki verileri silemiyorum. insert te herhangi bir problem yok yani.. umarım kafanızı karıştırmamışımdır. kurtarın beni bu ızdıraptan..
  • 14-03-2017, 16:24:59
    #2
    merhaba
    bu işin acemisi olarak netde baya bir süre crud olarak yapılmış örnekleri inceledim

    bunlar içinde en uygunu için

    http://s9.dosya.tc/server2/0v7hgf/CR...h-PDO.rar.html

    linkindeki örnek dosyayı beğendim

    crud.php include ediliyor ve onun içinde senin yapmak istediğin işlemleri

    if(isset($_POST['save']))

    if(isset($_GET['delete_id']))

    if(isset($_POST['update']))

    if(isset($_GET['edit_id']))

    şelinde gruplandırarak yaptırıyor. benzer bir örnek ile birleştirip bunla çok güzel işlemler yaptırıyorum ama geliştirme ve sorgu - raporlamada maalesef ilerleyemedim henüz

    örneği bir inceleyin. Örnek ile çalışmak isterseniz team ile yardımcı olabilirim.

    bu arada ufak bir öneri...
    Kullanacağınız veya hazırlayacağınız DB için lütfen DELETE kodu kullanmayın. Data büyüdükçe ve kullanıcı sayısı arttıkça maalesef hata oranı da o kadar yükselecekve insanlar 100 lerce hareketi olan bir kartı silmeleri durumunda bağlı olan herşey beraberinde kaybolacaktır. En uygun satır için _act gibi bir field ekleyip default değerini 1 yapın. Delete işlemi yerine de update ile bu değeri sıfıra çevirip bütün query lerde bu _act =1 şeklinde where tanımlaması yapmanız. aksi halde sizi aşırı yoracaklardır

    kolay gelsin