بسم الله الرحمن الرحيم
اولا اسف لتاخري بالمشاركة .. والشكر موصول للاستاذ عبدالله وللجميع ..
سوف اتكلم عن درس كنت قد طرحتة بموقعي .. وهو :
طريقة ربط جدول مع جدول آخر ...
الآن سنفرض اننا قمنا ببرمجة سكريبت اخبار ..
وقاعدة بياناتنا الاخبار تحتوي على الحقول التاليه :-
id = من نوع auto_incermet
title = من نوع VARCHAR وهو خاص لتخزين عناوين الاخبار .
News = من نوع TEXT وهو خاص بحفظ الاخبار ...
3 حقول .. الآن لنفرض ان لدينا صفحة وليكن اسمها
index.php لعرض شريط متحرك ... بعناوين الاخبار .. ورابط
اي خبر في هذا الشريط سينقلنا الى صفحة عرض
الخبر المختار وليكن اسم الصفحة view.php
سيكون الرابط في الشريط المتحرك هكذا
view.php?id=$id صح ، وسيكون الاستعلام داخل
هالصفحة مشروطا ...
كود PHP:
<?
$onw = mysql_query("SELECT * FROM news WHERE id='$id' ");
?>
على فرض ان جدول الاخبار اسمه news .. الآن
انتهينا من العرض ..
ماذا لو اردنا اضافة شيئ جديد لهذا السكريبت
ليجعله مميز ..؟؟ مثلا جعل امكانية الزوار التعليق عالاخبار .. فكره رائعه صحيح
اذا تعال لنكمل بقية الدرس ..
اولا سنحتاج الى جدول جديد في قاعدة بياناتنا
وليكن اسمه comments ويحتوي عالحقول التاليه
comid = من نوع int auto_increment .
acommentname = لحفظ الاسماء .
acommentemail = لحفظ الايميلات.
acomment = لحفظ التعليقات ..
جميل الى الآن ..
لكن هل قلت كيف سنربط الاخبار بالتعليقات .. سنحتاج الى حقل جديد لحفظ id الخبر
وذلك سنسمية idnews في جدول التعليقات من نوع Int عدد صحيح ..
وهذا الكود لعمل الجدول السابق
كود PHP:
CREATE TABLE `comments` (
`comid` int(11) NOT NULL auto_increment,
`acommentname` varchar(200) NOT NULL,
`acommentemail` varchar(200) NOT NULL,
`acomment` text NOT NULL default '',
`idnews` int(11) NOT NULL default '0',
UNIQUE KEY `comid` (`comid`)
) TYPE=MyISAM AUTO_INCREMENT=26 ;
انسخه وعمل له زراعه بقاعدة البيانات التي تستخدمها ..!!
وهذا الحقل idnews سيفيدنا في الاستعلام المشروط
الآن سنحتاج الى فروم لكي يدخل الزائر تعليقه ..
اولا ضع رابط في صفحة view.php الخاصة بعرض
الاخبار زر [ اضافة تعليق ] واجعل الرابط كالتالي
addcomment.php?id=$id
واعمل صفحة جديده
واسمها addcomment.php
الان سنحتاج في بداية الامر الى معرفة id الخبر
المراد اضافة التعليق عليه
وسنقوم باستجلابه من المتصفح بالطريقة التاليه
كود PHP:
<?
$id =$_GET['id'];
?>
الكود السابق سنضعه في بداية الصفحة addcomment
والان اليك كود الصفحة والفروم
كود PHP:
<?
$id =$_GET['id'];
?>
<html dir='rtl'><center><b>
<!-- نفتح فروم ونعين له صفحة توجيه الى do_addcomment -->
<form method='post' action='do_addcomment.php'>
<!-- عملنا حق مخفي لتخزين id الخبر hidden -->
<input type='hidden' name='newid' value='<? echo $id; ?>' size='20'>
<!-- الحقل الخاص بادخال اسم المعلق -->
اسمك<input type='textbox' name='acommentname' size='20'><br>
<!-- الحقل الخاص بادخال ايميل المعلق -->
ايمليك<input name='acommentemail' type='textbox' size='20'><br>
<!-- الحقل الخاص بادخال التعليق -->
تعليقك<textarea rows='5' cols='20' name='acomment'></textarea><br>
<!-- زر اضافة التعليق التوجه الى -->
<br><input type='submit' name='add' value='اضف التعليق'>
<!-- اقفال الفروم-->
</form></form></b>
بعد التعبئة والضغط على الزر سننتقل الى صفحة
do_addcomment.php وهنا سنضع الكود البرمجي
الخاص باضافة البيانات الى قاعدة بياناتنا
كود PHP:
<?
// نددرح الملف الخاص بالاتصال بقاعدة البيانات
include('config.php');
// الان سنضع متغير قيمتة الداله الخاصة بادخل البيانات الى القاعدة
$AddComentNew = mysql_query("INSERT INTO comments (acommentname,acommentemail,acomment,idnews)"."VALUES('$acommentname','$acommentemail','$acomment','$newid')");
// هل لاحظ معي كيفية تعين الربط او تعين القيمة بالاحرى
// فقد جعلنا قيمة الحقل الموجود بجدول التعليقات idnews هو قيمة الحقل المخفي
// الذي عينا له قيمة id الخبر ،،،
// الآن سنعمل شرط كما تعدونا انه يخبرنا بنتيجة الكود السابق
if($AddComentNew){
echo"<b>تم اضافة التعليق ";
}else{
echo"لم يتم اضافة التعليق </b>";
?>
أريت كم هوا سهل الربط بين الجداول
الان ياتي السؤال . كيف اظهر التعليقات في صفحة view.php على الاخبار .. ؟؟
سهل جدا وكل ما سنفعله الاستعلام من جدول التعليقات لكن مشرووط انظر الى الكود
كود PHP:
<?
// نددرح الملف الخاص بالاتصال بقاعدة البيانات
include('config.php');
// نجري الاستعلام من جدول التعليقات لكن مقرتنا بشرط
$viewcomment = mysql_query("SELECT * FROM comments WHERE idnews='$id' ORDER BY 'comid' DESC");
// اجرينا الاستعلام المقرون بالشرط مع كود اضافي ORDER BY 'comid' DESC
// وهذا الكود عرض التعليقات من الجديد للقديم آخر تعليق يكون الاول DESC
// الان سنشترط عليه وضع البيانات داخل مصفوفه
while($u = mysql_fetch_array($viewcomment)){
$comid =$u["comid"];
$acommentname =$u["acommentname"];
$acommentemail =$u["acommentemail"];
$acomment =$u["acomment"];
$idnews =$u["idnews"];
// هنا سنضع كود هتمل منسق لعرض التعليقات
echo"<div align='center'>
<center>
<table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='57%' id='AutoNumber1' height='52'>
<tr>
<td width='17%' height='19'><font face='Tahoma' size='2'><b> الاسم :</b></font></td>
<td width='30%' height='19'><font face='Tahoma' size='2'><b> <span lang='en-us'>$acommentname</span></b></font></td>
<td width='15%' height='19'><font face='Tahoma' size='2'><b>
<span lang='en-us'> </span>الايميل:</b></font></td>
<td width='40%' height='19'><font face='Tahoma' size='2'><b> <span lang='en-us'>$acommentemail</span></b></font></td>
</tr>
<tr>
<td width='100%' colspan='4' height='32'>
<p align='center'><font face='Tahoma' size='2'><b><span lang='en-us'>
$acomment</span></b></font></td>
</tr>
</table>
</center>
</div>";
// ثم نقفل الشرط
}
?>
هذا فان اصبت فمن الله وان اخطأت فمني ومن الشيطان
الكــودطويل ركزو فيه ، ولو فيه خطأ ياليت توضوح الخطا وين حتى يتم تعديله ..
انتهى الدرس واي سؤال انا حاضر .. :nice: