نقل الإعجابات من هاك الإعجابات لهاك الشكر







بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته [ اسم الشرح ] : نقل الإعجابات من هاك الإعجابات لهاك الشكر [ الوصف ] : نقل الإعجابات من هاك الإعجابات لهاك الشكر [ يتوافق مع اي اصدار ] : الجيل الثالث [ موقع مقدم الشرح ] : SiL3NT H!LL إبراهيم سالم اليوم راجع لكم بعد غياب طويل عن التطوير في عالم المنتديات وهذا الشرح انا احتجت اسويه في الصاعقة لاننا ألغينا ميزة الإعجاب واستبدلناها بالشكر وقلنا حرام الاعجابات وتعب الاعضاء يروح ع الفاضي والحمد لله قمت بنقل كامل لبيانات الاعجاب للشكر في البداية قول بسم الله الرحمن الرحيم ثانيا الهاكات اللي تم عليها الشرح والنقل أول هاك هاك الاعجاب و المشاركة للردود و المواضيع 2.5 ثاني هاك هاك الشكر بتقنية الأجاكس [7.7] وقبل كل شي لا أتحمل اي مسؤولية نتيجة تطبيق الدرس وعلشان كذا انصحك [info]بأن تغلق المنتدى قبل البدأ وإغلاقه ومن ثم أخذ نسخة إحتياطية لقاعدة البيانات حتى لا قدر الله اذا في خطأ تقدر ترجع كل شي [/info] وأنصح بهذه الطريقة لأخ نسخة احتياطية هنا You Tube بعد كذا تركب هاك الشكر بعد كذا تطبيق هل الامر بالقاعدة لإفراغ جدول الشكر

رمز PHP:
TRUNCATE `post_thanks`;  
وهذا لنسخ إحصائيات الاعجابات للشكر
رمز PHP:
INSERT INTO post_thanks (iduseridusername,date ,postid)
SELECT like_idlike_useridlike_username ,like_time,like_postid
FROM vb_like_share  
ثم طبق هذا الأمر لـتحديث عدد مرات الشكر بجدول الاعضاء
رمز PHP:
UPDATE user SET user.post_thanks_thanked_times user.likes_receive_by_ali
ثم طبق هذا الامر لتحديث الشكر
رمز PHP:
UPDATE user SET user.post_thanks_user_amount user.post_thanks_thanked_times 
ومن ثم نأتي لأهم نقطة حيث يلزمك اول احفظ هذا الكود بملف بصيغة php من برمجتي وشي بسيط بس اهم شي يؤدي الغرض
رمز PHP:
 <?php
/*
Ibraheem salem 
Sil3nt H!ll
sa3eka.com
*/
$server='localhost'
$user_name='root';  //  اسم مستخدم القاعدة
$pass='WEL';  // الباسورد
$data_name='data';  // اسم القاعدة


$link mysql_connect($server$user_name$pass);
if (!
$link) {
    die(
'Not connected : ' mysql_error());
}

// make foo the current db
$db_selected mysql_select_db($data_name$link);
if (!
$db_selected) {
    die (
'Can\'t use foo : ' mysql_error());
}

for (
$i=$i<1000$i++){
        
$getNumber =  mysql_query("SELECT * FROM `$data_name`.`post_thanks` WHERE `userid` = '$i'" $link);
        
$num mysql_num_rows($getNumber);
        
echo 
$i."<br>"
    
if ($num!=0){


        
$sql "UPDATE `user` SET `post_thanks_thanked_posts` = '$num' where userid='$i'";
        
mysql_select_db($data_name);
        
$retval mysql_query$sql$link );
            if(! 
$retval )
            {
              die(
'Could not update data: ' mysql_error());
            }
        echo 
"Updated data successfully for user ".$i." is = ".$num"<br>";
        
    }
            
        
}


?>

نأتي لتعديلات الملف اول شي عبي بيانات قاعدة المنتدى علشان ما تسبب ضغط ع سيرفر القواعد ولا سمح الله القاعدة تضرب عليك ويفضل بكل مرحلة لا تزيد عن 2000 عضو للإستضافات المشتركة واصحاب السيرفرات الخاصة لا يزيد عن 15000 عضو بكل مرحلة تبحث عن

رمز PHP:
for ($i=$i<1000$i++){  
وغير الرقم واحد للبداية والألف للنهاية وبعد الرفع افتحه عالمتصفح مرة واحد بكل عملية تحديث لأرقام الاعضاء وطبقها لين ما توصل عدد اعضاء منتداك والعملية هذه تأخذ وقت بعد الانتهاء من هذه المرحلة وهي المرحلة الطويلة والشاقة نأتي لخطوة التالية وهي تحديث الشكر بالمشاركات في هذه الخطوة لإختصار الوقت عليك اتجه للقاعدة و وطبق هذا الأمر لمعرفة كم عدد المشاركات اللي عليها شكر
رمز PHP:
SELECT COUNT( * )
FROM post_thanks  

وراح يطلع معاك الرقم مثل هل الصورة

نروح نحفظ هذا الكود بملف php

رمز PHP:
 <?php
/*
Ibraheem salem 
Sil3nt H!ll
sa3eka.com
*/
$server='localhost'
$user_name='root';  //  اسم مستخدم القاعدة
$pass='WEL';  // الباسورد
$data_name='data';  // اسم القاعدة



$link mysql_connect($server$user_name$pass);
if (!
$link) {
    die(
'Not connected : ' mysql_error());
}

// make foo the current db
$db_selected mysql_select_db($data_name$link);
if (!
$db_selected) {
    die (
'Can\'t use foo : ' mysql_error());
}


        
$getNumber =  mysql_query("SELECT * FROM `$data_name`.`post_thanks` LIMIT 0, 1000" $link);
        while (
$row mysql_fetch_assoc($getNumber) or die("fetch error " mysql_error()) ) {
        
$post_id=$row['postid'];
        
$sql "UPDATE `post` SET `post_thanks_amount` = `post_thanks_amount`+1 where postid='$post_id'";
        
mysql_select_db($data_name);
        
$retval mysql_query$sql$link );
            if(! 
$retval )
            {
              die(
'Could not update data: ' mysql_error());
            }
        echo 
"Updated data successfully\n";
        echo 
$row['id']." is = ".$row['postid']."<br>";


        }

?>

التعديلات اللي ع الملف قبل البدأ معلومات قاعدتك ثانيا نشوف الرقم اللي طلع معنا من تطبق الأمر الاخير اذا كان تحت الاف يلزمك مرة واحد وأنصح لأصحاب الاستضافات المشتركة ما يكثر عن 2000 والسيرفرات الخاصة ما يكثر عن 4000 بكل مرحلة ابحث بالكود السابق عن

رمز PHP:
LIMIT 01000" , $link 

واستبدل الصفر والالف بما يلزمك وعند الانتهاء قم بحذف ملفات php اللي رفعتها للأمان لانه فيها معلومات الداتا وبكذا خلصت والحمد لله


ابراهيم سالم : http://www.traidnt.net/vb/traidnt2555714