News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Silinmiş Üyeyi Geri Getirmek (Resimli anlatım)

Started by Pijama, February 15, 2009, 06:59:53 PM

Previous topic - Next topic

Pijama

Merhabalar
Daha önce bu konu Elmacik arkadaşımız tarafından anlatıldı.
Bir çok kişi bu anlatım sayesinde silinmiş eski üyelerini veya
kazara silinen üyelerini geri getirmeyi başardı.
Fakat bu işlemden sonra yeni bir ihtiyaç ortaya çıktı.
Peki nedir bu ihtiyaç ?
"Geri getirilen üyenin mesaj alanındaki yan profilde bulunan Mesaj Sayısı: kısmı degişmiyordu"

- Admin > Forum Bakımı > İstatistikleri ve forum toplamını yeniden say işe yaramadı
- Mysql den tabloları onardık yine işe yaramadı
- üyenin profilinden mesaj sayısını değiştirmeyi akıl ettik yine olmadı
  çünkü eski üyeliğin kaç mesajı olduğunu bilmiyorduk

Şimdi hem silinen üyemizi geri getireceğiz hemde mesaj sayısını değiştirecegiz
bu durumu şuanda forum sitemde silinmiş bir üyeyi örnek vererek, resimli olarak anlatacağım

Silinmiş olan üye profilini aşağıda görüyorsunuz
mesaj tarihine dikkat edin..


Resim açılmadıysa burayı tıklayın

Daha sonra bu üye foruma farklı bir isimle kayıt olup tonca mesaj yazmış
kendisini silen bu üyenin yeni isimle aldıgı yeni profili aşagıda görüyorsunuz
eski sildiği isimle bir daha kayıt olabilirdi. Bu hiç bir işlemimizde farklılık göstermeyecktir.


Resim açılmadıysa burayı tıklayın

Şimdi bu üye yanıma geldi ve eski mesajlarımı yeni üyeliğime eklermisiniz dedi
"hay hay ne demek işimiz bu" demedim tabi :)
bende Elmacık arkadaşımızın konusuna göz attım ve sonra Yağız hocamı soru bombardımanına tuttum

3 sql sorgusuyla isteklerimizi tam anlamıyla gerçekleştirdik.

Başlıyoruz..
öncelikle silinmiş üyenizin yeni bir üyeliği yoksa hemen yeni bir üyelik alın
alacağınız yeni üyelik ismi, silinmiş olan üyelik ismi ile aynı olabilir.

cPanelden phpMyadmin sayfamıza baglanıyoruz
ve SMF forum sitemiz için kurduğumuz veritabanını tıklıyoruz


Resim açılmadıysa burayı tıklayın

Veritabanımızı seçip tıkladıktan sonra açılan sayfada
veritabanının ismi üzerinde duran SQL simgesi tıklıyoruz
ve karşımıza sql sorgu paneli çıkıyor


Resim açılmadıysa burayı tıklayın

Evet işte sql sorgu panelimiz



bu panele aşagıda verdigim sorguyu yazıp sağ alt köşedeki GiT butonunu tıklıyoruz

Code (SMF 1.x) Select

UPDATE smf_messages SET ID_MEMBER='YENI_UYE_NUMARASI' WHERE posterName='ESKI_KULLANICI_ADI';


Code (SMF 2.x) Select

UPDATE smf_messages SET id_member='YENI_UYE_NUMARASI' WHERE poster_name='ESKI_KULLANICI_ADI';


bu sorguda dikkat edilmesi gerekenler şunlardır ve kendinize göre değiştiriniz
smf_messages kısmındaki smf_ tabloların ön ekidir. Eger siz farklı bir ön ek kullanmışsanız degiştiriniz
YENI_UYE_NUMARASI nı bulmak için forum sitenizde yeni alınan üyeligin ismi üzerine mause getirin
örnek resim aşağıdadır.


Resim açılmadıysa burayı tıklayın

ESKI_KULLANICI_ADI silinen üyenin ismidir. Eski silinmiş üye ismi yani

evet sorgumuz hakkındaki bu ek bilgilerden sonra sorgumuzu çalıştırıyoruz
aşağıdaki resimde görüldügü gibi sorgumu kendime göre değiştirdim ve GiT butonuna basıyorum


Resim açılmadıysa burayı tıkla

Evet aşağıdaki resimde gördügünüz gibi sorgumuz başarıyla çalıştı
ve eski silinmiş üyeni tüm mesajları yeni üyelik ismine aktarıldı


Resim açılmadıysa burayı tıklayınız

İşte farkları belgeleyen resim


Resim açılmadıysa burayı tıklayın

Evet silinmiş üyemizi geri getirdik
yanlız ufak bir fark var üyenin yan Pofiline baktıgımızda mesaj sayısının değişmedigini görüyoruz
halbuki mesaj sayısının yükselmesi lazımdı degilmi ? çünkü eski mesajlarıda ekledik

ilk önce silinmiş olan o eski üyemizin isminde kaç mesaj var onu bulmamız lazım
Yağız hocamız hemen bize sql sorgusunu verdi ve denemeye başlıyoruz

phpMyadmin sayfamızda veritabanının ismi üzerindeki SQL simgesini tıklıyoruz
ve açılan sql sorgu paneline aşağıdaki sorguyu yazıyoruz

Code (SMF 1.x) Select

SELECT COUNT(*) FROM smf_messages WHERE posterName = 'ESKI_KULLANICI_ADI';


Code (SMF 2.x) Select

SELECT COUNT(*) FROM smf_messages WHERE poster_name = 'ESKI_KULLANICI_ADI';


Sorguyu kendime göre değiştirerek uyguluyorum. Nasıl değişileceğini yukarda yazmıştım
karşıma eski silinmiş üyemizin mesaj sayısı geliyor. Hemen bu sayıyı yanıma not ediyorum
çünkü birazdan bu sayıyı yeni üyeliğe aktaracağız


Resim açılmadıysa burayı tıklayın

Evet eski mesaj sayısını buldum
birde üyemin varsa şunki mesaj sayısını alıyorum

Eski mesaj sayısı : 5136
Yeni mesaj sayısı : 4247
Toplam Mesaj Sayısı: 9383

şimdi toplam mesaj sayısını yeni üyeliğe aktaralım
Yağız hocam sağolsun hemen sql sorgusunu bana veriyor

Code (SMF 1.x) Select

UPDATE smf_members SET posts = 'TOPLAM_MESAJ_SAYISI' WHERE ID_MEMBER = 'YENi_UYE_NUMARASI'


Code (SMF 2.x) Select

UPDATE smf_members SET posts = 'TOPLAM_MESAJ_SAYISI' WHERE id_member= 'YENi_UYE_NUMARASI'


YENi_UYE_NUMARASI nasıl bulunur yukarda anlatmıştım hemen ilgili yere yazıyoruz
TOPLAM_MESAJ_SAYISI kısmınada üyenin eski mesaj sayısı ve yeni mesaj sayısının toplamını yazıyorum

artık sql sorgularını nasıl çalıştıracağımızı biliyoruz degilmi
az once iki defa anlattım zaten :)

veritabanı ismi üzerindeki SQL simgesini tıklıyorum çıkan sorgu paneline sorgumu yazıyorum
ve GiT butonuna basarak işlemi gerçekleştiriyorum. Karşıma şöyle bir sonuç geliyor..


Resim açılmadıysa burayı tıklayın

Evet tüm işlemler bitti
Yeni üyemiz böylelikle eski mesajlarına sahip oldu

Bu son verdigim sorgunun yerine şöylede yapabilirsiniz..
Buldugunuz toplam mesaj sayısını ilgili üyenin profiline giderek
Üyelik Ayarları kısmını tıklayarak açılan sayfada mesaj sayısı kutucugunada yazabilirsiniz

Örnek resim:

Resim açılmadıysa burayı tıklayın


İşte hepsi bu kadar :)
ilk baştada dediğim gibi 3 sorgulama işlemiyle istediğimizi yerine getirdik.

Konusuyla ilham veren Elmacık arkadaşıma
ve hazırladığı sorgularla destek veren daha doğrusu
bu çalışmanın gerçek emekcisi Yağız hocama sonsuz teşekkürlerimi sunarım
o olmasaydı bende bu çalışmayı hazırlamıyacaktım..

Umarım anlatım işinize yaramıştır..
Cümlemize kolay gelsin
Hayırlı çalışmalar..


c a g a t a y

Eyvallah Pijama
Sık sık lazim olan bir konu oldugundan ADD to BOOKMARK yaptim bu konuyu

Selamlar

turanordusu.tc

Emeğine sağlık Çok güzel ve açıklayıcı bir anlatım olmuş. ;)


Gökhan | Brestgerfich

Hocam şu an sitemdeki son üye THE-X, forumda 309. üye olarak görünüyor. (http://www.takilanlar.com/profile/?u=309 şeklinde yani)

Ancak silinen üyelikler nedeniyle forum istatistiklerinde 293 üye görünüyor. Arada 16 üyelik bir fark var yani.
Yukarıda yaptığınız anlatımla bu 16 üyelik farkı kapatmak mümkün mü? Benim anladığım kadarıyla mümkün değil -yeni bir üyelik açtığımız için böyle düşünüyorum- ama size bi sorayım dedim.

Pijama

Mucize dedigini anladım

Tam olarak şöyle demeye çalışıyorsun
silinen üyeyi, silinmeden önce hangi ID numarasıydaysa o ID numarasıyla birlikte geri alayım
böylelikle Üye sayısı ile ID numaraları paralel yürüsün diyorsun..

Bence bir kaç msql sorgusuyla buda olur diye düşünüyorum ama emin değilim
yinede profesyonel anlamda bir hocamıza danışmak lazım
biliyorsunki, verdigim sorguları yağız hocamız hazırlamıştı..

Herhangi bir bilgi edindigimde burda paylaşırım
şimdilik kolay gelsin..

Ayrıca teşekkür eden arkadaşlara, ilgilerinden dolayı ben teşekkür ederim
umarım işlerine yaramıştır.

Iyi Calışmalar..

Yağız...

Bunun için sanırım rallyproco birşey hazırlamıştı. Burada da olması gerekiyor. Bir bakayım ama çalışmayabilir...

Gökhan | Brestgerfich


Yağız...

Buldum, ve çalıştırdım. Ama bazı hataları var. O yüzden biraz daha deneme yapacağım :)

€®Ю€∏∏----®

eline emeğine sağlık hocam çok güzel olmuş

c a g a t a y

Babalar kafai yedim olmuyor

UPDATE smfyedek_messages SET ID_MEMBER='23708' WHERE posterName='TURKSOYLU'

sorguda hersey normal (smfyedek tablo adi böyle)

Neden olmadigi konusunda bir fikri olan?

Yağız...


c a g a t a y

adım gibi eminim dogru Yagiz'cim
Sifir result ile dönüyor cok ilginc?

Gökhan | Brestgerfich

#1054 - Unknown column 'posterName' in 'where clause'

hatası cıktı :S

Yağız...


Gökhan | Brestgerfich

Teşekkürler Yağız...

Konu sayısı için topics tablosunda arama yaptım. poster_name yerine starter_name yazdım ama kabul etmedi.
Ne olabilir ?

agguvenligi

çok güzel bir paylaşım olmuş teşekkürler .
Gerçeği aramak onu bulmaktan daha kıymetlidir...
____________________________________
Dodge Check Engine Light | Yeni Private Serverlar | Gsm Destek

asaddas

Quote from: Mucize | Brestgerfich on May 14, 2009, 07:58:21 PM
Teşekkürler Yağız...

Konu sayısı için topics tablosunda arama yaptım. poster_name yerine starter_name yazdım ama kabul etmedi.
Ne olabilir ?

+1
Bir yardım ederseniz sevinirm  :)

Özgür


2.0 için admin paneli bakım bölümünde "Kullanıcı iletilerini ilişkilendir" var. Ordan yapın bu işlemi.
So Long

asaddas


Advertisement: