Çözüldü player_delete sürekli boş

Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

miranyabilisim

Üye
Üye
Mesaj
27
Çözümler
3
Beğeni
5
Puan
433
Ticaret Puanı
0
Herkese merhaba. Navicat üzerinden player de bulunan bir oyuncuyu sildiğim zaman player_deleteye düşmüyor. Bu sorunu nasıl düzeltebilirim acaba?
 
Çözüm
Ancak id kalıntıları mevcut o id ile yeni hesap oluşmuyor
Eğer burada bahsettiğin "oluşturma" işlemini elle değil de panel veya başka bir yerden başka bir şekilde yapıyorsan aynı id ile oluşturmaz. Bu gayet normaldir. Çünkü account tablosundaki "id" sütunu Auto Increment özelliğine sahiptir. Bunun anlamı kısaca şu;
Bu tabloya eklenen her verinin id değeri, sıralamaya göre ilerleyecek. demektir. Sonradan silinenler vb. bu düzeni ve şartı değiştirmez.

Mesela bu tabloda 3 tane kayıt olsun ve id'leri 1-2-3 şeklinde olsun.
Sen id numarası 2 olan accountu silip, daha sonra tekrar başka bir kaynak aracılığı ile hesap oluşturup buraya kaydedersen o eklenen account'un id değeri 4 olarak devam edecektir. Yani silinmiş olan 2...
Yeni Hesap oluşturabilmek için Account/Acccount İçindeen hesabı silmen gerekebilir. Ama bu dosyadan hesabı silersen o hesaba bağlı karakterleri de silmen gerek ve bu olay elle yapılınca tüm kalıntıları elle silmen gerekecek silmezssen hata alabilirsin.

Örn: Karakterlerde bulunan İtemleri Elle Silmen gerekecek buda item_attr tablosun da yer alıyordu sanırsam.(Dosya doğrumu çok emin değilim).

Birde elle işlem yaptığın dosya ya şu işlemi yapmayı unutma. İşlem yaptıktan sonra:


Adsız.webp


Bu dosyada yaptığın işlemden sonra hata olup olmadığını görmeni sağlayacak. (OK/Warning)
 
Ancak id kalıntıları mevcut o id ile yeni hesap oluşmuyor
Anlattıklarım tamamen varsayımdır;

Şimdi sen karakter seçme ekranından hesabı sildin game tarafına gitti oradan db ye gitti diyelim silinecek karakteri tabloda veya bellekte aradı ve hem oradan hemde bellekten sildi. Ama sen direk tablodan sildiğin için bellekte hala daha duruyor.

Belki daha farklıdır kodlara bakmadan ancak bu aklıma geldi.
 
Son düzenleme:
Gün içinde bakacağım teşekkür ederim.
Yeni Hesap oluşturabilmek için Account/Acccount İçindeen hesabı silmen gerekebilir. Ama bu dosyadan hesabı silersen o hesaba bağlı karakterleri de silmen gerek ve bu olay elle yapılınca tüm kalıntıları elle silmen gerekecek silmezssen hata alabilirsin.

Örn: Karakterlerde bulunan İtemleri Elle Silmen gerekecek buda item_attr tablosun da yer alıyordu sanırsam.(Dosya doğrumu çok emin değilim).

Birde elle işlem yaptığın dosya ya şu işlemi yapmayı unutma. İşlem yaptıktan sonra:


19980 eklentisini görüntüle

Bu dosyada yaptığın işlemden sonra hata olup olmadığını görmeni sağlayacak. (OK/Warning)
Gün içinde bakacağım teşekkürler
 
Ancak id kalıntıları mevcut o id ile yeni hesap oluşmuyor
Eğer burada bahsettiğin "oluşturma" işlemini elle değil de panel veya başka bir yerden başka bir şekilde yapıyorsan aynı id ile oluşturmaz. Bu gayet normaldir. Çünkü account tablosundaki "id" sütunu Auto Increment özelliğine sahiptir. Bunun anlamı kısaca şu;
Bu tabloya eklenen her verinin id değeri, sıralamaya göre ilerleyecek. demektir. Sonradan silinenler vb. bu düzeni ve şartı değiştirmez.

Mesela bu tabloda 3 tane kayıt olsun ve id'leri 1-2-3 şeklinde olsun.
Sen id numarası 2 olan accountu silip, daha sonra tekrar başka bir kaynak aracılığı ile hesap oluşturup buraya kaydedersen o eklenen account'un id değeri 4 olarak devam edecektir. Yani silinmiş olan 2, öylece boşta kalır ve bu sıralamaya tekrar (elle eklenmediği sürece) eklenmez.

Ancak navicat üzerinden id numarası 2 olacak şekilde tekrar bir account satırı ekleyip hesap oluşturmayı denersen bunu kabul edip satırı ekleyecektir ve hesabı oluşturacaktır.
 
Çözüm
Hesap silerken sadece player tablosundan silinmez. Ayrıca karakter silme kodunu kullanıp oyundan silmek yerine neden senin silmeye çalıştığını anlamadım. Basitçe anlatayım;

Tamamen silmek istiyorsan kontrol etmen gereken 3 yer var

player --> player (account id yi aklında tut daha sonra sil)

account --> account (account id'ye denk gelen kısmı bul ve buradan da sil)

player --> player index (account id'ye denk gelen kısmı bul ve buradan da sil)
 
Eğer burada bahsettiğin "oluşturma" işlemini elle değil de panel veya başka bir yerden başka bir şekilde yapıyorsan aynı id ile oluşturmaz. Bu gayet normaldir. Çünkü account tablosundaki "id" sütunu Auto Increment özelliğine sahiptir. Bunun anlamı kısaca şu;
Bu tabloya eklenen her verinin id değeri, sıralamaya göre ilerleyecek. demektir. Sonradan silinenler vb. bu düzeni ve şartı değiştirmez.

Mesela bu tabloda 3 tane kayıt olsun ve id'leri 1-2-3 şeklinde olsun.
Sen id numarası 2 olan accountu silip, daha sonra tekrar başka bir kaynak aracılığı ile hesap oluşturup buraya kaydedersen o eklenen account'un id değeri 4 olarak devam edecektir. Yani silinmiş olan 2, öylece boşta kalır ve bu sıralamaya tekrar (elle eklenmediği sürece) eklenmez.

Ancak navicat üzerinden id numarası 2 olacak şekilde tekrar bir account satırı ekleyip hesap oluşturmayı denersen bunu kabul edip satırı ekleyecektir ve hesabı oluşturacaktır.
anladım teşekkür ederim. konu kapanabilir
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst