المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [درس مفصل] برمجة سكريبت script لاصلاح الجداول Repair Tables



said
11-01-2013, بتوقيت غرينيتش 04:38 PM
http://www.dzbatna.com/images/icons/idea.gif [ط¯ط±ط³] ط¨ط±ظ…ط¬ط© ط³ظƒط±ظٹط¨طھ ظ„ط§طµظ„ط§ط* ط§ظ„ط¬ط¯ط§ظˆظ„ Repair Tables (http://www.dzbatna.com/t624995/)


السلام عليكم ورحمة الله وبركاته


أرجو عدم نقل الدرس مفصل بدون ذكر المصدر ورابط الدرس مفصل بطريقة واضحة
http://www.montadaphp.net/showthread.php?t=1249


من الأدوات المفيدة في لوحة تحكم اي سكريبت script قوي هو مديول خاص باصلاح الجداول،
واصلاح الجداول يعني التأكد من فاعليتها وحذف اي معلومات زائدة قد تشغل مساحة بدون فائدة

في البداية يلزمنا برمجة ملفين:
1- db.php وهو ملف الاتصال بقاعدة البيانات.
2- repair.php وهو الملف المسئول عن اصلاح جميع جداول قاعدة البيانات.


وسوف أقوم هنا بمناقشة الملفين بالتفصيل
ونبدأ بسم الله

الملف الأول: db.php
كود code الملف:
رمز PHP:

<code style="white-space:nowrap"> <code> <?
/////////////////////////////////////////////////////////////////////////////////
// سكريبت script تحسين جداول قواعد البيانات
// برمجة [email protected] (http://www.cloudflare.com/email-protection)
// 12/2/2014
// برجاء عدم ازالة الحقوق مع حرية استخدام الأكواد في اي اعمال مجاني freeة او مدفوعة
/////////////////////////////////////////////////////////////////////////////////

// قم بتغيير اعدادات قاعدة البيانات كما تريد
$dbname = "db";
$dbusername = "root";
$dbpassword = "";
$dbserver = "localhost";
// لا تقم بالتعديل بعد هذا السطر

mysql_connect($dbserver, $dbusername, $dbpassword);
mysql_select_db($dbname);
/////////////////////////////////////////////////////////////////////////////////
// سكريبت script تحسين جداول قواعد البيانات
// برمجة [email protected] (http://www.cloudflare.com/email-protection)
// 12/2/2014
// برجاء عدم ازالة الحقوق مع حرية استخدام الأكواد في اي اعمال مجاني freeة او مدفوعة
/////////////////////////////////////////////////////////////////////////////////
?> </code> </code>

ونأتي لشرح طريقة الملف:
في السطور الأول والثاني والثالث والرابع للكود code، قمنا بتحديد بيانات قاعدة البيانات، وهي اسم قاعدة البيانات واسم المستخدم للاتصال بها وكلمة المرور واسم سيرفر SERVER MySQL على التوالي
في السطر الخامس قمنا باجراء الاتصال بسيرفر SERVER قاعدة البيانات عن طريق الدالة mysql_connect() (http://www.montadaphp.net/showthread.php?t=312)
في السطر السادس قمنا باختيار قاعدة البيانات التي سنتعامل معها عن طريق الدالة mysql_select_db() (http://www.montadaphp.net/showthread.php?t=314)
بهذا ينتهي الملف الأول وهو الخاص بالاتصال بقاعدة البيانات


الملف الثاني: repair.php
كود code الملف:
رمز PHP:

<code style="white-space:nowrap"> <code> <?
/////////////////////////////////////////////////////////////////////////////////
// سكريبت script تحسين جداول قواعد البيانات
// برمجة [email protected] (http://www.cloudflare.com/email-protection)
// 12/2/2014
// برجاء عدم ازالة الحقوق مع حرية استخدام الأكواد في اي اعمال مجاني freeة او مدفوعة
/////////////////////////////////////////////////////////////////////////////////
require('db.php');
?>
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
<script language="JavaScript">
function checkAll(form){
for (var i = 0; i < form.elements.length; i++){
eval("form.elements&#91;" + i + "&#93;.checked = form.elements&#91;0&#93;.checked");
}
}
</script>
</head>
<body>
<?
function redir($msg, $url)
{
echo "<p align=\"center\">";
echo "<table width=\"70%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr><td>&nbsp;</td></tr>";
echo "<tr><td>$msg</td></tr>";
echo "<tr><td>&nbsp;</td></tr>";
echo "<meta http-equiv=\"refresh\" content=\"1;url=$url\">";
echo "</p>";
}

if(!isset($_POST&#91;'submit'&#93;))
{
$tables = mysql_query("SHOW TABLE STATUS");
echo "<form name=\"form1\" method=\"post\" action=\"repair.php\"/><table width=\"80%\" cellpadding=\"5px\" border=\"1\" style=\"border-collapse: collapse\" bordercolor=\"#0B4250\">";
echo "<tr><td colspan=\"5\">تحسين الجداول</td></tr>";
echo "<tr><td colspan=\"5\" style=\"font-size:8pt;\">اختر الجداول التي تريد تصليحها وتحسينها ثم اضغط تحسين</td></tr>";
echo "<tr><td>الجدول</td><td class=\"table_sub\">المساحة</td>
<td>الحالة</td>
<td>
<input type=\"checkbox\" name=\"check_all\" checked=\"checked\" onClick=\"checkAll(this.form)\"/></td></tr>";
while($table = mysql_fetch_array($tables))
{
$size = round($table&#91;'Data_length'&#93;/1024, 2);
$status = mysql_fetch_array(mysql_query("ANALYZE TABLE `$table&#91;Name&#93;`"));
echo "<tr><td width=\"20%\">$table&#91;Name&#93;</td><td width=\"40%\">$size كيلوبايت</td><td width=\"25%\">$status&#91;Msg_text&#93;</td><td width=\"5%\"><input type=\"checkbox\" name=\"check&#91;&#93;\" value=\"$table&#91;Name&#93;\" checked=\"checked\" /></td></tr>";
}
echo "<tr><td colspan=\"5\"><center><input type=\"submit\" name=\"submit\" value=\"تحسين\" /></center></td></tr>";
echo "</table></form>";
}
else
{
if(!$_POST&#91;'check'&#93;)
{
redir("من فضلك اختر جدول واحد على الأقل ليتم تحسينه..", "index.php?com=repair&do=optimize");
exit;
}
$tables = $_POST&#91;'check'&#93;;
echo "<table width=\"80%\" cellpadding=\"5px\" border=\"1\" style=\"border-collapse: collapse\" bordercolor=\"#0B4250\">";
echo "<tr><td colspan=\"5\">تحسين الجداول</td></tr>";
foreach($tables as $table)
{
$query = mysql_query("REPAIR TABLE `". $table . "`");
$que = mysql_fetch_array($query);
echo "<tr><td width=\"20%\">";
echo "تم تصليح الجدول \"" . $que&#91;'Table'&#93; . "\" بنجاح";
echo "</td></tr>";
}
echo "<tr><td colspan=\"5\" style=\"height:5px\"></td></tr>";
echo "</table>";
redir("تم تحسين الجداول بنجاح..", "repair.php");
}
?>
</body>
</html>
<?
/////////////////////////////////////////////////////////////////////////////////
// سكريبت script تحسين جداول قواعد البيانات
// برمجة [email protected] (http://www.cloudflare.com/email-protection)
// 12/2/2014
// برجاء عدم ازالة الحقوق مع حرية استخدام الأكواد في اي اعمال مجاني freeة او مدفوعة
/////////////////////////////////////////////////////////////////////////////////
?> </code> </code>

ونأتي لشرح طريقة الكود code:
رمز PHP:

<code style="white-space:nowrap"> <code> require('db.php');
</code> </code>

كود code ادراج ملف الاتصال بقاعدة البيانات عن طريق الدالة require() (http://www.montadaphp.net/showthread.php?t=38)


رمز PHP:

<code style="white-space:nowrap"> <code> <script language="JavaScript">
function checkAll(form){
for (var i = 0; i < form.elements.length; i++){
eval("form.elements&#91;" + i + "&#93;.checked = form.elements&#91;0&#93;.checked");
}
}
</script>
</code> </code>

هذه الدالة بلغة جافاسكريبت script Javascript وهي تقوم باختيار /الغاء اختيار جميع الجداول، حيث تقوم باختيار جميع صناديق الاختيار المقابلة لجميع الجداول بدلا من اختيارها واحدا تلو الآخر

رمز PHP:

<code style="white-space:nowrap"> <code> function redir($msg, $url)
{
echo "<p align=\"center\">";
echo "<table width=\"70%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr><td>&nbsp;</td></tr>";
echo "<tr><td>$msg</td></tr>";
echo "<tr><td>&nbsp;</td></tr>";
echo "<meta http-equiv=\"refresh\" content=\"1;url=$url\">";
echo "</p>";
}
</code> </code>

هذه الدالة بتحويل المتصفح الى صفحة أخرى مع عرض رسالة ما لمدة ثانية قبل التحويل، وتصلح للاستخدام لعرض نتيجة حدث معين يقوم به المستخدم ثم الانتقال الى صفحة أخرى...

رمز PHP:

<code style="white-space:nowrap"> <code> $tables = mysql_query("SHOW TABLE STATUS");
</code> </code>

الاستعلام عن جميع الجداول الموجودة في قاعدة البيانات

رمز PHP:

<code style="white-space:nowrap"> <code> while($table = mysql_fetch_array($tables))
</code> </code>

استعراض نتائج الاستعلام عن طريق حلقة تكرار while

رمز PHP:

<code style="white-space:nowrap"> <code> $size = round($table&#91;'Data_length'&#93;/1024, 2);
</code> </code>

جلب حجم الجدول بالكيلوبايت وتقريبه الى رقمين عشريين بعد الفاصلة عن طريق الدالة round

رمز PHP:

<code style="white-space:nowrap"> <code> $status = mysql_fetch_array(mysql_query("ANALYZE TABLE `$table&#91;Name&#93;`"));
</code> </code>

الاستعلام عن حالة الجدول الحالي، وتكون نتيجة الاستعلام:
Table is already up to date
أو OK في حالة عدم وجود مشاكل بالجدول
أو رسالة الخطأ في حالة وجود خطأ بالجدول

رمز PHP:

<code style="white-space:nowrap"> <code> $query = mysql_query("REPAIR TABLE `". $table . "`");
</code> </code>

استعلام اصلاح وتحسين الجدول

رمز PHP:

<code style="white-space:nowrap"> <code> redir("تم تحسين الجداول بنجاح..", "repair.php");
</code> </code>

كود code الانتقال الى الصفحة الرئيسية مرة أخرى بعد انتهاء التحسين

بهذا نكون قد انتهينا من مناقشة الكود code
والملفين كاملين بالمرفقات
repair.php (http://www.montadaphp.net/attachment.php?attachmentid=359&d=1195439642) | db.php (http://www.montadaphp.net/attachment.php?attachmentid=360&d=1195439653)





أرجو عدم نقل الدرس مفصل بدون ذكر المصدر ورابط الدرس مفصل بطريقة واضحة
http://www.montadaphp.net/showthread.php?t=1249





ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى