GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: HasanEfe - 31 Mayıs 2020, 14:36:51

Başlık: Mysql Kayıt Etmiyor
Gönderen: HasanEfe - 31 Mayıs 2020, 14:36:51
mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `id` = %d LIMIT 1", level, oyuncuData[ID][xID]);
mysql_tquery(mysqlC, str);

bu kodu /yetkiver e yazıyorum fakat kayıt etmiyor nedenini bilmiyorum yardımcı olursanız sevinirim

Mysql log:
https://pastebin.com/UQ0Swned

veri çekiyor ancak kayıt etmiyor ben mysql a admin levelini 5 yazınca oyuna girince 5 level oluyorum fakat /yetkiver den yapınca kayıt olmuyor kullandığım mysql sürümü r41-4

mysql da veritabanını sildim yeniden oluşturdum sonuç aynı kodlarla ilgili sorun var büyük ihtimalle
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: flareoNNN - 31 Mayıs 2020, 14:56:59
Veritabanında 'id' adında bir sütun yok.
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: jyonsae - 31 Mayıs 2020, 14:58:10
mysql_format kullanırken `` veya '' kullanmaman gerekiyor. o fonksiyon zaten algılayabiliyor. ayrıca komutu her kullandığında update sorgusu gönderiyorsan yapmamalısın çünkü çok sağlıklı olmaz. sadece oyuncu oyundan çıkarken kayıt et. oyuncuya admin değeri verdiğinde bunu bir enum içinde saklamayı dene. pAdminLevel gibisinden
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: Cherry - 31 Mayıs 2020, 15:00:10
Alıntı yapılan: Fyunkan - 31 Mayıs 2020, 14:58:10
mysql_format kullanırken `` veya '' kullanmaman gerekiyor. o fonksiyon zaten algılayabiliyor. ayrıca komutu her kullandığında update sorgusu gönderiyorsan yapmamalısın çünkü çok sağlıklı olmaz. sadece oyuncu oyundan çıkarken kayıt et. oyuncuya admin değeri verdiğinde bunu bir enum içinde saklamayı dene. pAdminLevel gibisinden
yanlışın var oyuncu tam oyundan çıkarken sunucu çökse veriyi kayıt etmez, ve ongamemodeexit publicinde onplayerdisconnect çalıştığı için sunucuyu yorar.
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: jyonsae - 31 Mayıs 2020, 15:11:07
Alıntı yapılan: Cherry - 31 Mayıs 2020, 15:00:10
yanlışın var oyuncu tam oyundan çıkarken sunucu çökse veriyi kayıt etmez, ve ongamemodeexit publicinde onplayerdisconnect çalıştığı için sunucuyu yorar.
https://wiki.sa-mp.com/wiki/SetTimer
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: HasanEfe - 31 Mayıs 2020, 18:48:14
ID yi ayarlayamıyorum yani şunu yazıyorum

mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `Isim` = %d LIMIT 1", level, getname(ID));
mysql_tquery(mysqlC, str);

ama kayıt olmuyor

mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `id` = %d LIMIT 1", level, ID);
mysql_tquery(mysqlC, str);

yazıyorum başka kişiyde verdiğim halde benim üstime geliyor
Başlık: Ynt: Mysql Kayıt Etmiyor
Gönderen: flareoNNN - 31 Mayıs 2020, 18:53:53
Alıntı yapılan: HasanEfe - 31 Mayıs 2020, 18:48:14
ID yi ayarlayamıyorum yani şunu yazıyorum

mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `Isim` = %d LIMIT 1", level, getname(ID));
mysql_tquery(mysqlC, str);

ama kayıt olmuyor

mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `id` = %d LIMIT 1", level, ID);
mysql_tquery(mysqlC, str);

yazıyorum başka kişiyde verdiğim halde benim üstime geliyor


mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = %d WHERE `Isim` = %d LIMIT 1", level, getname(ID));
mysql_tquery(mysqlC, str);

Bu kullanımınız hatalı. %d sadece sayısal değerler için kullanılabilir. Isim çekerken %s kullanmalısınız.

mysql_format(mysqlC, str, sizeof str, "UPDATE `oyuncular` SET `Admin` = '%d' WHERE `Isim` = '%s' LIMIT 1", level, getname(ID));
mysql_tquery(mysqlC, str);

Yukarıdaki gibi değiştirmelisiniz.