GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

SQL kayıt etmiyor

Başlatan xMusabBey, 14 Ocak 2022, 23:24:06

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

xMusabBey

Vds üzerinden navicat ile xampp beeraber çalıştrıp oyunu açıyorum fakat oyun içerisinde bir değişiklik yapınca sql'e kayıt etmiyor oyun penceresini kapatıp açınca sıfırlanıyor sorunu bilen varmı?


korashi

SQL bağlantısının düzgünce sağlandığından ve verilerin çekilip Karakter/Oyuncu enumlarına sorunsuz aktarıldığına emin ol. Daha sonra publiclerin dışına çıkarak bir fonksiyon oluştur. Şimdi ise hangi veriyi güncelleyeceğimiz seçelim örneğin para olsun. Fonksiyonun içine sorgumuzu kodlayacağız:
asd yazan yere MySQL bağlantısının tanımlandığı değişkeni yazman gerekiyor. Oyuncu[playerid][para] yazan yere ise SQL'den çekilen verilerin tanımlandığı enumu yazmalısın. `oyuncular` yazan yere verilerin tutulduğu tablonun adını girmelisin. `para` yazan kısıma ise güncellemek istediğin sütunun adını giriyorsun.

stock OyuncuKaydet(playerid)
{
    new query[128];
    format(query, sizeof(query), "UPDATE `oyuncular` SET `para` = '%d'", Oyuncu[playerid][para]);
    mysql_tquery(asd, query);
}

Fonksiyonumuzda güncellemek istediğimiz verileri güncelledikten sonra fonksiyonu kapatıyoruz ve adını OyuncuKaydet koyduğumuz fonksiyonu OnPlayerDisconnect publicine giderek OyuncuKaydet(playerid); olarak ekliyoruz.


squarepants

@korashi merhaba hocam, yukarıda verdiğiniz örnekte sanırım sorgu oyuncular tablosundaki para sütununu içeren tüm satırlar için çalışacaktır. Bu durumda oyuncunun para miktarı ne olursa olsun tüm para sütunları güncellenecek. Aşağıdaki durum ile oyuncu ismine yönelik sorgular daha stabil olabilir :

stock OyuncuKaydet(playerid)
{
    new query[128];
    format(query, sizeof(query), "UPDATE `oyuncular` SET `para` = '%d' WHERE `Isim` = '%s'", Oyuncu[playerid][para], Oyuncu[playerid][isim]);
    mysql_tquery(asd, query);
}
NOT : Oyuncu[playerid][para], Oyuncu[playerid][isim] değişkenleri temsili olarak verilmiştir.


Coiner

Alıntı yapılan: Bölüm Kuralları
Açılan taleplerin son iletisi 10 günü geçmesi durumunda; konu kilitlenip, kilitli konular bölümüne taşınacaktır. Sorunu çözülen konularınızı kilitleyip, moderatörlere bildiriniz.
K/A

Coiner    
#0111