Doğru Cevap
-
$sorgu = mysql_query("update test set alan='test' where id='1';"); if (mysql_affected_rows()==0) { $sorgu = mysql_query("insert into test (id, alan) values ('1','test');"); } // birde sole bisi var $sorgu = mysql_query("INSERT INTO tablo (field) VALUES ('deger23') ON DUPLICATE KEY UPDATE field='deger'");
dedigin kod bumuydu?-
siyahbeyaz
ha birde söyle birsey var. bu mysql den ziyade php5 ile gelen hata yakalam sistemi
try { mysql_query("update tablo set deger='degergelsinburaya' where id=1"); // yukardaki kodda herhangi bir hata olmazsa.. } catch { mysql_query("insert into tablo (deger) values ('De Here Looo sende :D')"); // update isleminde bir hata yada basarısızlık soz konusu olursa insert into calısacaktır }
11 yıl önce yazılmış
-
Cevaplar
-
Cevaplar için teşekkürlr arkadaşım. Yaklaşım matıgı dogru fakat aradıgım cevap degil daha dogrusu verdiklerin sorunumu çözmedi.
$usermeta_email_status_result = mysql_query("UPDATE `scs_usermeta` SET `meta_value` = '$email_status' WHERE `user_id`='$user_id' AND `meta_key`='user_email_status'");
Yukarı kodlamada;
$user_id değişkeni giriş yapmış olan üyenin id si. 1 2 3 .... int tam sayı.
$email_status değişkeni true ve false yani boolean E/H email gizlemek istediginde true/ gizlemek istemezse false deger alıyor.
Buraya kadar her şey tamam
tabloya baglanıyor. where ile id 1 VE `meta_key` sutününda user_email_status degeri olan satırını arıyor. bulursa, gayet güzel değiştiriyor.
Fakat bulamazsa benim sorunumda burda başlıyor.
Çnkü UPDATE bulursa satırı güncellesede 1 degeri gönderiyor. bulamadıgındada 1 gönderiyor.
Zaten herhangi bir hata kodu sözkonusu olmadıgından tyr catch işlem yapmadı.
Kısaca benim istediğim eger where ile verdigim koşulda saır yoksa eklesin. varsa güncellesin.-
siyahbeyaz
cok dönemecli bir yolda gitmişsin..
su sekilde yapabilirsin olayı
<form .....> k.adi <input .....> sifre : <input ....> Beni hatırla <input type="Checkbox" name="hatirla" value="1" /> <button ..> </form>
$hatirla = $_POST["hatirla"]; if(empty($hatirla)) { $hatirla = 0; } mysql_query("UPDATE tablom set hatirla='".$hatirla."' where user_id=1 ");
seklinde bir yol izlemen..
cunku neden diyeceksin. bir kere checkbox secili degilse yani off olarak gelmişse deger atanmamış olarak gelir. yani öyle bir degisken hic olusturulmamıs olacaktir. yukardaki if kontrolune bakarsanız ne demek istedigimi anlayacaksiniz...
işin basit yolu bır form olusturun icine bir adet checkbox koyun ve kaydet.php ye post edin
kaydet php icine
print_r($_POST); yapın ve gelen array ın ıcergıne bakın.11 yıl önce yazılmış -
kurtitasarim
ilk olarak mysql_num_rows ile kayıt varmı yani if döngüsü içinde kontrol ettir ! eğer yok ise yani else ile kayıt et ! mysql_num_rows sana false olarak dönüyor ise hemen altına bir kayıt sayfası açtırabilirsin jquery ile..11 yıl önce yazılmış
-