• 22-01-2013, 03:28:13
    #1
    mrb arkadaşlar
    yazmakta olduğum bir sistem var burada update sorgusunu kontrol edip eğer update başarısız veya o id ile kayıtlı veri yoksa yeni bir veri eklemek istiyorum.
    bunu uzun yoldan yapabilirim ama daha kısa bir yolunu arıyorum.
    örnek :
    $sonuc=mysql_query("UPDATE tablo_adi set ozellik_id='$ozellik_id' where id='$_GET[id]' and sira='1'");
    burada $_GET[id] ve sira='1' eşleşmiyorsa yeni veri eklicek.

    mysql_affected_rows()'u önermeyiniz çünkü o sadece veride değişiklik yapınca true oluyor veride değişiklik yapmadan kaydet dediğim zaman false olarak gördüğünden yeni veri ekliyor database'e.

    bu konuda yardımcı olabilecek arkadaşlara şimdiden teşekkü ederim.
  • 22-01-2013, 03:53:03
    #2
    create adlı üyeden alıntı: mesajı görüntüle
    mrb arkadaşlar
    yazmakta olduğum bir sistem var burada update sorgusunu kontrol edip eğer update başarısız veya o id ile kayıtlı veri yoksa yeni bir veri eklemek istiyorum.
    bunu uzun yoldan yapabilirim ama daha kısa bir yolunu arıyorum.
    örnek :
    $sonuc=mysql_query("UPDATE tablo_adi set ozellik_id='$ozellik_id' where id='$_GET[id]' and sira='1'");
    burada $_GET[id] ve sira='1' eşleşmiyorsa yeni veri eklicek.

    mysql_affected_rows()'u önermeyiniz çünkü o sadece veride değişiklik yapınca true oluyor veride değişiklik yapmadan kaydet dediğim zaman false olarak gördüğünden yeni veri ekliyor database'e.

    bu konuda yardımcı olabilecek arkadaşlara şimdiden teşekkü ederim.

    Merhaba kolay gelsin. anlayabildiğim kadarıyla bişeyler karalayayım. eğer anlayamamışsam kusruma bakmayın lütfen.
    $sonuc=mysql_query("UPDATE tablo_adi set ozellik_id='$ozellik_id' where id='$_GET[id]' and sira='1'");
    if(!$sonuc){
    mysql_query("insert into () values()"); 
    
    }
    uzun yoldan kastınız sanırım bu.
    kolay gelsin
  • 22-01-2013, 03:58:16
    #3
    yok uzun yoldan kastım bu değildi daha uzun benim ki ama bu sonuç vermiyor hocam onu diyim. benim uzun yolum şöyle olabilir eğer çözüm bulamazsam


    $sonuc=mysql_query("UPDATE tablo_adi set ozellik_id='$ozellik_id' where id='$_GET[id]' and sira='1'");
    
    $deneme=mysql_query("select * from tablo_adi  where id='$_GET[id]' and sira='1'");
    $veri = mysql_fetch_assoc($deneme);
    if(!$veri[tablo_id]){
          mysql_query("insert into () values()"); 
    }
  • 22-01-2013, 04:03:39
    #4
    create adlı üyeden alıntı: mesajı görüntüle
    yok uzun yoldan kastım bu değildi daha uzun benim ki ama bu sonuç vermiyor hocam onu diyim. benim uzun yolum şöyle olabilir eğer çözüm bulamazsam


    $sonuc=mysql_query("UPDATE tablo_adi set ozellik_id='$ozellik_id' where id='$_GET[id]' and sira='1'");
    
    $deneme=mysql_query("select * from tablo_adi  where id='$_GET[id]' and sira='1'");
    $veri = mysql_fetch_assoc($deneme);
    if(!$veri[tablo_id]){
          mysql_query("insert into () values()"); 
    }

    dediğimi yap hocam o zaman seninki tam kod zulumüymüş kolay gelsin.
  • 22-01-2013, 04:08:30
    #5
    if(!$sonuc){
    mysql_query("insert into () values()");

    }

    bu kod çalışmıyor zaten hocam neden dersen update te veri yoksa dahi true döndüyor. hatasız işlem aldığı için
  • 22-01-2013, 04:09:38
    #6
    id sütunu tablonuzun anahtarıysa ON DUPLICATE KEY ile tek sorgu oluşturabilirsiniz.

    INSERT INTO tablo (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=1;

    gibi.

    İyi günler.
  • 22-01-2013, 04:12:50
    #7
    id sutünu tablo anaktarı değil bunu denedim olmadı hocam id anahtarı başka bir isimde id anahtarı ile sorgu yapmıyorum sadece içerdeki veri ile yani şöyle sölim

    tablo {
    tablo_id
    isim
    }
    tablo2 {
    tablo2_id
    isim
    }
    tablo3 {
    tablo3_id auto increment,
    tablo2_id,
    tablo_id
    }

    ben burada tablo3 de tablo2_id ve tablo_id ye göre kullanıyorum diğer türlü anahtarı sorgu içinde kullanmam imkansız ötesi bişi

    nie böle saçma bişi yapıyorsun diye sormayın çünkü sistem baya bir komplike o yüzden