السلام عليكم
اي نعم فعلا اذا كنت من اصحاب المنتديات vBulletin أريدك هنا حتى نستفيد سويا !!
الموضوع ببساطه هو طريقة الاستعلام من قاعدة بيانات منتدانات واستخراج معلومات منها مثل آخر عشر مواضيع وعدد المواضيع وعدد الأقسام وعدد المرفقات وأكثر المرفقات تحميلا وشعبيه وأكثر المواضيع زياره وعدد الأعضاء وهكذا ..
هل اتضحت لك الآن ؟
أتمنى ان يكون الجواب ( نعم )
وللعلم فقط : هذه المره لن أرفق أي ملفات حتى أجبرك أن تطبّق حتى تتعلّم وطبعا ليس إجبارل لك ولــكن حتى تستفيد وتصل المعلومه لك .
الفكره عباره مرحلتين :
- المرحله الأولى : كتابه كود الاتصال بملف php ثم ربطه بقاعدة المنتدى .
- المرحله الثانيه : الاستعلام لإخراج القيم التي سنستخرجها من القاعده .
نبدأ بالمرحله الاولى :
كتابة كود اتصال بالقاعد وربطه !! كـــيــف ؟
افتح ملف php خالي واذا لا يوجد لديك محرر ملفات php تستطيع الاستعانه بملفات النوت باد txt لكتابتها ........ عموما من هالناحيه لا تشيل هم تقدر تبحث عن برنامج اسمه PHP Expert Editor يستخدم لكتابة وتحرير ملفات php وان لم تجده اذهب لأي ملف من ملفات المنتدى وانسخه والصقه على سطح المكتب وغير اسمه لأي اسم ثاني وبعدها افتحه وامسح كل اللي داخله .
وبعدها ....
هذا كود الاتصال بالقاعده انسخ الكود التالي والصقه بالملف اللي فتحناه
كود PHP:
<?php
$localhost = "localhost";
$userdb = "bwady_111";
$passdb = "123456";
$database = "bwady_vb";
$link1 = mysql_connect($localhost,$userdb,$passdb) or die ("Could not connect to MySQL");
mysql_select_db ($database) or die ("Could not select database");
?>
طبعا مع مراعاة تغير التالي :
bwady_111 إلى اسم مستخدم قاعدة بيانات المنتدى .
123456 إلى باسويرد القاعده .
bwady_vb إلى إسم قاعدة بيانات المنتدى .
ثم اسفل كود الاتصال نستعمل كود لإتجاه الصفحه وبما اننا عرب فمن المأكد ان اتجاه صفحاتها من اليمين الى اليسار وهذا هو الكود :
كود PHP:
echo "<html dir='rtl'>";
echo "<style>
<!--
.smallfont
{
font: 8px MS Sans Serif;
}
p
{
font: 8pt MS Sans Serif;
}
-->
</style>";
echo "<title>آخر مواضيع المنتدى</title>";
كود التحويل هو dir='rtl' من اليمين الى اليسار
وبعده استخدمنا style للتحكم بنوع وحجم الخط
وبعده يأتي العنوان title
ولاحظ اننا استخدمنا امر الطباعه echo
ثم بعد الاتصال وربطه بالقاعده بقي علينا شي بسيط وهو استخراج المعلومات من القاعده وكل ما عليك هو كتابة الأمر التالي تحت الكود السابق
كود PHP:
ECHO "<br>";
ECHO "<div class='smallfont'>آخر مواضيع المنتدى</font></div>";
echo"<table border='1' width='100%' cellspacing='0' cellpadding='0'><tr>";
$max = "SELECT * FROM thread order by threadid desc";
$result_max = mysql_query ($max) or die ("Query failed");
$m=0;
$l=0;
while($max_f=mysql_fetch_array($result_max) and $m<12)
{
$m++;
$id_max=$max_f['threadid'];
$title_max=$max_f['title'];
$link_max=$max_f['firstpostid'];
$vis_max=$max_f['lastpost'];
$gsm_max=$max_f['forumid'];
$gsm_max1=$max_f['replycount'];
$postusername=$max_f['postusername'];
$gsm_max3=$max_f['postuserid'];
$gsm_max4=$max_f['lastposter'];
$gsm_max5=$max_f['dateline'];
$gsm_max6=$max_f['views'];
$gsm_max7=$max_f['hiddencount'];
$gsm_max8=$max_f['sticky'];
if($l==3){$l=0;echo"</tr>";};
echo"<td>
<div class='smallfont'><a href='showthread.php?t=$id_max' title=كاتب الموضوع : $postusername \nالقسم : $gsm_max ' target='_blank'>$title_max</div></td>";
$l++;
}
ECHO "</tr>
</table>";
تحليل بسيط للكود السابق :
السطر الاول ECHO "<br>"; امر طباعة سطر وهو بأول الصفحه مباشرة .
السطر الثاني ECHO "<div class='smallfont'>آخر مواضيع المنتدى</font></div>"; وهو أمر طباعة جدول مخفي يحمل خصائص الاستايل اللي بالأعلى وهي class='smallfont'
السطر الثالث
كود PHP:
echo"<table border='1' width='100%' cellspacing='0' cellpadding='0'><tr>";
وهو امر لفتح جدول .
ويأتي بعده الكود الأهم
SELECT * FROM thread order by threadid descوهو أمر من اوامر sql لإستخراج المعلومات من الجداول ونفصله قليلا :
SELECT تعني تحديد أي تحديث حقل معين من جدول ما بالقاعده واذا اردت تحديد جميع الحقول بالجدول دون استثناء نكتب ما في مثالنا وهي علامة * بعد الأمر SELECT مباشره ثم تأتي كلمة FROM وهي تعني من (الجدول الفلاني) وتحدد بعدها مباشرة اسم الجدول وقد حددناه thread وهو جدول خاص بحفظ المواضيع ثم يأتي الأمر order by ويعني ترتيب حسب وغالبا يأتي الرتيب حسب التسلسل إما تصاعديا او تنازيا وطبعا الترتيب يأتي حسب إسم الحقل .. وحقلنا هنا هو threadid وهذا الحقل يقوم بتعداد المواضيع تسلسليا يعني من 1 إلى مالا نهايه وكلما اضفت موضوع سيزيد هذا الحقل بمقدار 1 وأخير الأمر desc هو لإظهار القيم تنازليا أي من الأكبر إلى الأصغر وهي تعادل من الاحدث إلى الاقدم ... ولو فرضنا أننا نريد استخراج القيم تصاعديا أي من الأصغر إلى الأكبر وهي تعادل من الأقدم إلى الأحدث فقط نزيل الأمر desc وبس .
ثم الكود الذي يليه متغيرات ثم فتحتنا مصفوفه والمهم هنا
كود PHP:
while($max_f=mysql_fetch_array($result_max) and $m<12)
العدد 12 يساوي عدد المواضيع التي يتم استخراجها من القاعده وطبعا كل موضوع سيكون بحقل منفصل عن الآخر .
وأيضا لاحظ ما بعد الشرط
كود PHP:
if($l==3){$l=0;echo"</tr>";};
ستجد القيمه 3 وهي عدد الحقوق أفقيا للجدول .
وبعدها يأتي كود عرض الموضوع ورابطه بداخل الحقول .
وهذا الكود كاملا
كود PHP:
<?php
$localhost = "localhost";
$userdb = "bwady_111";
$passdb = "123456";
$database = "bwady_vb";
$link1 = mysql_connect($localhost,$userdb,$passdb) or die ("Could not connect to MySQL");
mysql_select_db ($database) or die ("Could not select database");
echo "<html dir='rtl'>";
echo "<style>
<!--
.smallfont
{
font: 8px MS Sans Serif;
}
p
{
font: 8pt MS Sans Serif;
}
-->
</style>";
echo "<title>آخر عشر مواضيع</title>";
ECHO "<br>";
ECHO "<div class='smallfont'>آخر مواضيع المنتدى</font></div>";
echo"<table border='1' width='100%' cellspacing='0' cellpadding='0'><tr>";
$max = "SELECT * FROM thread order by threadid desc";
$result_max = mysql_query ($max) or die ("Query failed");
$m=0;
$l=0;
while($max_f=mysql_fetch_array($result_max) and $m<12)
{
$m++;
$id_max=$max_f['threadid'];
$title_max=$max_f['title'];
$link_max=$max_f['firstpostid'];
$vis_max=$max_f['lastpost'];
$gsm_max=$max_f['forumid'];
$gsm_max1=$max_f['replycount'];
$postusername=$max_f['postusername'];
$gsm_max3=$max_f['postuserid'];
$gsm_max4=$max_f['lastposter'];
$gsm_max5=$max_f['dateline'];
$gsm_max6=$max_f['views'];
$gsm_max7=$max_f['hiddencount'];
$gsm_max8=$max_f['sticky'];
if($l==3){$l=0;echo"</tr>";};
echo"<td>
<div class='smallfont'><a href='showthread.php?t=$id_max' title='كاتب الموضوع : $postusername \nالقسم : $gsm_max ' target='_blank'>$title_max</div></td>";
$l++;
}
ECHO "</tr>
</table>";
?>
وبعدما تنتهي من عملك ارفع الملف الى مجلد منتدى vb وقم بإستدعائه بالمتصفح وشاهد الروعه
ومن هنا التطبيق الذي قمت به
http://www.bwady.com/vb/11.php
وتمنياتي للجميع بالتوفيق