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ştirecegizbu 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 (http://olaysohbet.ol.funpic.org/yukle/resimler/d30631f7e56b598e743222ec22b39fd6.gif)
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/45820c2e89001b209a4c31501527b07f.gif)
Ş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 (http://olaysohbet.ol.funpic.org/yukle/resimler/5699959e02fd376ebb2c1139f09efd23.gif)
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/1663f083405d486a34e839de5cb935b4.gif)
Evet işte sql sorgu panelimiz
bu panele aşagıda verdigim sorguyu yazıp sağ alt köşedeki GiT butonunu tıklıyoruz
UPDATE smf_messages SET ID_MEMBER='YENI_UYE_NUMARASI' WHERE posterName='ESKI_KULLANICI_ADI';
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/2ce8797f22769a3657cebf5d1b12bf72.gif)
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/d4881508836a19457babf19e185e7b6b.gif)
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/d248aba5d38b9e2a4d4ae9526adc764d.gif)
İşte farkları belgeleyen resimResim açılmadıysa burayı tıklayın (http://olaysohbet.ol.funpic.org/yukle/resimler/407c4a99a4ee46f62ac2f8e4c86a0ac3.gif)
Evet silinmiş üyemizi geri getirdikyanlı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
SELECT COUNT(*) FROM smf_messages WHERE posterName = 'ESKI_KULLANICI_ADI';
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/cf78c3a1115fc838006628c8c838533e.gif)
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
UPDATE smf_members SET posts = 'TOPLAM_MESAJ_SAYISI' WHERE ID_MEMBER = 'YENi_UYE_NUMARASI'
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 (http://olaysohbet.ol.funpic.org/yukle/resimler/0a502318d345182cd9a560fb6ffc4b44.gif)
Evet tüm işlemler bittiYeni ü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 (http://olaysohbet.ol.funpic.org/yukle/resimler/505b8c8680b7172c85c5157aeabd6c90.gif)
İş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..
Emeğine sağlık Çok güzel ve açıklayıcı bir anlatım olmuş. ;)
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.
Bunun için sanırım rallyproco birşey hazırlamıştı. Burada da olması gerekiyor. Bir bakayım ama çalışmayabilir...
Buldum, ve çalıştırdım. Ama bazı hataları var. O yüzden biraz daha deneme yapacağım :)
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 ?
Eğer Sinan'ın(benim) Topic Count On Display (Mesajlarda Konu Sayısı) modifikasyonunu kurduysanız bu kodu kullanın:
UPDATE smf_members SET topics = 'TOPLAM_MESAJ_SAYISI' WHERE ID_MEMBER = 'YENi_UYE_NUMARASI'
Teşekkürler işime yaradı.
Bu olayı konu sahibi değiştirmede kullanamazmıyız?
Herkese İyi akşamlar.
Konuyu çok güzel açıklamışsınız. Ama bende olmadı ya da ben yapamadım. Kodları eksiksiz kopyaladım. Üye numarası dahil herşeyi yaptım ama mesajlar geri gelmedi. Hala ismin altında "ziyaretçi" yazmakta. Yeni üyelik ise olduğu gibi duruyor.
Mesaj sayısını profilden elle değiştirmek mümkün. Onu değiştirdim. Ama öncesinde de silinen üyenin mesaj sayını aratmıştım. 1230 olması lazımken, 10 diye gösterdi.
Bu sorunların sebebi nedir acaba, cevap verebilir misiniz?
Ben nerede yanlış yapıyorum?
Selam arkadaşlar, aydınlatıcı bilgiler için teşekkürler. Peki şöyle bir yardım rica etsem mümkün mü?
Ben yanlışlıkla ID numarası 1 olan bir üyeyi "yanlışlıkla" sildim. Tekrar yeni bir üyelik açtım ona. Ancak bu yeni üyeliğin de ID numarasının 1 olmasını istiyorum. Bu mümkün müdür? Yada nasıl mümkündür?
Şimdiden teşekkürler..
Yeni ID numarasını 1 yaptım arkadaşlar PMA'dan teşekkür ederim bana yol gösterdiğiniz ve sorunu çözmem de fikir öncüsü olduğunuz için. Herkese hayırlı geceler dostlar..
Üyeyi ve mesajlarını bağladık ancak diyelim üye ilklerden 90 ID numarası ama yeni numarası 49... kusür oldu. Bunu değiştirme şansı var mı bir de konularını belirleyemedik. smf_topics'ten konusunu da belirlemek mümkün mü teşekkürler...
Edit: gurubunu phpmyadminden değiştirdim ID'sini değiştirince hata verdi.
Edit: UPDATE smf_topics SET id_member_started='4xxx' WHERE id_member_started='xx';
diye işlem yaptım ama eski üyenin konu açma kayıtları da yok ki update olan birşey olmadı.