برمجة المواقع وقواعد البيانات تعليم قواعد بيانات Access , MySQL , php , ajax , css , html اوراكل.....وغيرها

إضافة رد
قديم 08-06-2009, 12:28 PM
  #1
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
12 شرح كيفية برمجة منتدى مصغر ب php


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

فى هذا الموضوع يتم شرح كيفية برمجة منتدى مصغر و هذا الشرح مفيد جدا بإذن الله لحديثى العهد بلغة PHP و من أهم فوائد الموضوع شرح كيفية التعامل مع قواعد البيانات و ربط النماذج بالبرمجة و كيفية الدمج بين التصميم والبرمجة

نبدأ ... بسم الله

أولا تحديد الملفات التى سوف يتم كتابتها :

create_topic.php
add_topic.php
main_forum.php
view_topic.php
add_answer.php


ثانيا قاعدة البيانات و بنائها :
فى هذا الدرس سنحتاج فقط إلى جدولين و هما forum_question و forum_answer

و يكون بناءهم بهذا الشكل




كود PHP:
  CREATE TABLE `forum_question` ( 
`
idint(4NOT NULL auto_increment
`
topicvarchar(255NOT NULL default ''
`
detaillongtext NOT NULL
`
namevarchar(65NOT NULL default ''
`
emailvarchar(65NOT NULL default ''
`
datetimevarchar(25NOT NULL default ''
`
viewint(4NOT NULL default '0'
`
replyint(4NOT NULL default '0'
PRIMARY KEY (`id`) 
TYPE=MyISAM AUTO_INCREMENT=

CREATE TABLE `forum_answer` ( 
`
question_idint(4NOT NULL default '0'
`
a_idint(4NOT NULL default '0'
`
a_namevarchar(65NOT NULL default ''
`
a_emailvarchar(65NOT NULL default ''
`
a_answerlongtext NOT NULL
`
a_datetimevarchar(25NOT NULL default ''
KEY `a_id` (`a_id`) 
TYPE=MyISAM

بهذا نكون انتهينا من بناء جداول قاعدة البيانات التى سيتم تسجيل المواضيع و الردود بها

يتبع ..



achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 12:30 PM
  #2
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

ثالثا البدء فى كتابة الملفات :
ملف create_topic.php

و سيظهر فى المتصفح بهذا الشكل :




كود PHP:
 
[LEFT]<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"
<
tr
<
form id="form1" name="form1" method="post" action="add_topic.php"
<
td
<
table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"
<
tr
<
td colspan="3" bgcolor="#E6E6E6"><strong>Create New Topic</strong> </td
</
tr
<
tr
<
td width="14%"><strong>Topic</strong></td
<
td width="2%">:</td
<
td width="84%"><input name="topic" type="text" id="topic" size="50" /></td
</
tr
<
tr
<
td valign="top"><strong>Detail</strong></td
<
td valign="top">:</td
<
td><textarea name="detail" cols="50" rows="3" id="detail"></textarea></td
</
tr
<
tr
<
td><strong>Name</strong></td
<
td>:</td
<
td><input name="name" type="text" id="name" size="50" /></td
</
tr
<
tr
<
td><strong>Email</strong></td
<
td>:</td
<
td><input name="email" type="text" id="email" size="50" /></td
</
tr
<
tr
<
td>&nbsp;</td
<
td>&nbsp;</td
<
td><input type="submit" name="Submit" value="Submit" /> <input type="reset" name="Submit2" value="Reset" /></td
</
tr
</
table
</
td
</
form
</
tr
</
table> [/LEFT


و كود هذا الملف بسيط و هو عبارة عن نموذج إرسال عادى و لا يوجد به برمجة

يتبع ..
achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 12:32 PM
  #3
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

كتابة الملف add_topic.php :


و هذا الملف هو المسؤول عن نقل البيانات من صفحة كتابة الموضوع إلى جدول forum_question فى قاعدة البيانات و لا يظهر منه فى المتصفح شئ سوى رسالة تأكيد حفظ البيانات فى حالة نجاح حفظ البيانات او رسالة خطأ فى حالة حدوث خطأ
كود PHP:


 <?php 
$host
="localhost"// اسم المزود  
$username=""// اسم مستخدم قاعدة البيانات  
$password=""// كلمة سر قاعدة البيانات  
$db_name="test"// اسم قاعدة البيانات 
$tbl_name="forum_question"// اسم الجدول  

//الأتصال بقاعدة البيانات  
mysql_connect("$host""$username""$password")or die("فشل الاتصال بقاعدة البيانات");  
mysql_select_db("$db_name")or die("فشل الاتصال بقاعدة البيانات"); 

$datetime=date("d/m/y h:i:s"); //تحديد تاريخ حفظ الموضوع  
$sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')"
$result=mysql_query($sql); 

if(
$result){ 
echo 
" تم حفظ الموضوع بنجاح<BR>"
echo 
"<a href=main_forum.php>العودة إلى الصفحة الرئيسية</a>"

else { 
echo 
"خطأ"

mysql_close(); 
?>
تحليل أكواد الملف بالتفصيل :
كود PHP:

 
$host
="localhost"// اسم المزود  
$username=""// اسم مستخدم قاعدة البيانات  
$password=""// كلمة سر قاعدة البيانات  
$db_name="test"// اسم قاعدة البيانات 
$tbl_name="forum_question"// اسم الجدول 
هذا الجزء هو الخاص بتحديد متغيرات سنستخدما فى الإتصال بقاعدة البيانات و كل متغير أمامه تعليق يوضح البيانات التى يحتوى عليها كل متغير

كود PHP:


 
//الأتصال بقاعدة البيانات  
mysql_connect("$host""$username""$password")or die("فشل الاتصال بقاعدة البيانات");  
mysql_select_db("$db_name")or die("فشل الاتصال بقاعدة البيانات"); 
فى هذا الجزء يتم الإتصال بقاعدة البيانات باستخدام المتغيرات السابقة .. فى البداية يتم الاتصال بمزود قواعد البيانات باستخدام الدالة mysql_connect ثم بعد ذلك تحديد قاعدة البيانات باستخدام دالة mysql_select_db


كود PHP:
  $datetime=date("d/m/y h:i:s"); //تحديد تاريخ حفظ الموضوع 
فى هذا الجزء تم استخدام دالة date و ذلك لتحديد الوقت الذى تم حفظ الموضوع فيه لتسجيل ذلك فى بيانات الموضوع




كود PHP:
  $sql="INSERT INTO $tbl_name(topic, detail, name, email, datetime)VALUES('$topic', '$detail', '$name', '$email', '$datetime')"
$result=mysql_query($sql); 
فى هذا الجزء يتم استخدام أوامر Sql من اجل حفظ البيانات فى جدول forum_question .. تم حفظ أولا امر ال Sql فى متغير ثم استخدام هذا المتغير فى دالة mysql_query لتنفيذه




كود PHP:
  if($result){ 
echo 
" تم حفظ الموضوع بنجاح<BR>"
echo 
"<a href=main_forum.php>العودة إلى الصفحة الرئيسية</a>"

else { 
echo 
"خطأ"

تم استخدام اداة الشرط if و ذلك للتحقق من ان امر Sql قد تم تنفيذه ام لا و يتم اعطاء رسالة نجاح أو خطأ




كود PHP:
  mysql_close(); 

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

و بهذا نكون انتهينا من كتابة هذا الملف

يتبع ..
achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 12:36 PM
  #4
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

كتابة ملف main_forum.php :

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





كود الملف بالكامل


<DIV style="MARGIN: 5px 20px 20px">
كود PHP:
  <?php 
$host
="localhost"// المزود  
$username=""// اسم المستخدم  
$password=""// كلمة المرور 
$db_name="test"// اسم قاعدة البيانات  
$tbl_name="forum_question"// اسم الجدول 

// الاتصال بقاعدة البيانات 
mysql_connect("$host""$username""$password")or die("فشل الاتصال بالمزود");  
mysql_select_db("$db_name")or die("فشل تحديد قاعدة البيانات"); 

$sql="SELECT * FROM $tbl_name ORDER BY id DESC"
// OREDER BY id DESC is order result by descending  
$result=mysql_query($sql); 
?> 
<table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td> 
<td width="53%" align="center" bgcolor="#E6E6E6"><strong>الموضوع</strong></td> 
<td width="15%" align="center" bgcolor="#E6E6E6"><strong>الزيارات</strong></td> 
<td width="13%" align="center" bgcolor="#E6E6E6"><strong>الردود</strong></td> 
<td width="13%" align="center" bgcolor="#E6E6E6"><strong>التاريخ</strong></td> 
</tr> 

<?php 
while($rows=mysql_fetch_array($result)){ // بدايةحلقة التكرار 
?> 
<tr> 
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td> 
<td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td> 
</tr> 

<?php 
// نهاية حلقة التكرار  

mysql_close(); 
?> 
<tr> 
<td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>اضافة موضوع جديد </a></td> 
</tr> 
</table>
توضيح الأكواد بالتفصيل

كود PHP:
 <?php 
$host
="localhost"// المزود  
$username=""// اسم المستخدم  
$password=""// كلمة المرور 
$db_name="test"// اسم قاعدة البيانات  
$tbl_name="forum_question"// اسم الجدول 

// الاتصال بقاعدة البيانات 
mysql_connect("$host""$username""$password")or die("فشل الاتصال بالمزود");  
mysql_select_db("$db_name")or die("فشل تحديد قاعدة البيانات"); 

$sql="SELECT * FROM $tbl_name ORDER BY id DESC"
// OREDER BY id DESC is order result by descending  
$result=mysql_query($sql); 
?>
هذا الجزء تم شرحه من قبل و هو الجزء الخاص بالاتصال بقاعدة البيانات و تنفيذ الاستعلام Query



<DIV style="MARGIN: 5px 20px 20px">
كود PHP:
  <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"
<
tr
<
td width="6%" align="center" bgcolor="#E6E6E6"><strong>#</strong></td> 
<td width="53%" align="center" bgcolor="#E6E6E6"><strong>الموضوع</strong></td
<
td width="15%" align="center" bgcolor="#E6E6E6"><strong>الزيارات</strong></td
<
td width="13%" align="center" bgcolor="#E6E6E6"><strong>الردود</strong></td
<
td width="13%" align="center" bgcolor="#E6E6E6"><strong>التاريخ</strong></td
</
tr
هذا الجزء هو الخاص برأس الجدول الذى سيظهر فيه الموضوع و هو كود Html لا يوجد به اى برمجة

كود PHP:
رمز PHP:<?php 
while($rows=mysql_fetch_array($result)){ // بدايةحلقة التكرار 
?> 
<tr> 
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td> 
<td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['view']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['reply']; ?></td> 
<td align="center" bgcolor="#FFFFFF"><? echo $rows['datetime']; ?></td> 
</tr> 

<?php 
// نهاية حلقة التكرار  

mysql_close(); 
?>
فى هذا الجزء تكون حلقة التكرار المسئولة عن تكرار الأوامر الخاصة بعرض المواضيع اسفل بعضها البعض باستخدام mysql_fetch_array و هذه الدالة تقوم بإدخال نتائج الاستعلام من قاعدة البيانات فى مصفوفة و يتم تكرار الاوامر مع كل موضوع حتى يصل الى اخر موضوع
هذا الجزء يجمع بين لغة html و ال php مثل هذا السطر




كود PHP:
  <td bgcolor="#FFFFFF"><a href="view_topic.php?id=<? echo $rows['id']; ?>"><? echo $rows['topic']; ?></a><BR></td>
هنا نجد انه باستخدام ال html صنعنا وصلة و فى نهاية الوصلة تم اضافة



كود PHP:
  <? echo $rows['id']; ?>
لإدخال ناتج من نتائج الاستعلام من قواعد البيانات فى نهاية الرابط لتصبح فى النهاية بهذا الشكل



كود PHP:
view_topic.php?id=

مع مراعاة ان # فى هذا الشرح هى رقم الموضوع

ثم فى اغلقنا حلقة التكرار و الاتصال بقاعدة البيانات فى النهاية



كود PHP:
  <tr
<
td colspan="5" align="right" bgcolor="#E6E6E6"><a href="create_topic.php"><strong>اضافة موضوع جديد </a></td
</
tr
</
table
هذا الجزء هو نهاية جدول عرض المنتديات و تم وضع رابط اضافة موضوع جديد به و هو ليس به اى برمجة مجرد تصميم فقط

و بهذا نكون انتهينا من كتابة هذا الملف

يتبع ..
achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 12:39 PM
  #5
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

كتابة ملف view_topic.php :

هذا الملف هو الخاص بعرض الموضوع و الردود .. نموذج توضيحى للملف ..

هكذا يظهر فى المتصفح :





و هذا نموذج لجزء عرض الموضوع :




و هذا نموذج لجزء عرض الردود :





و هذا نموذج لجزء اضافة الردود :





كود الملف كاملا :


كود PHP:
  <?php 
$host
="localhost"// Host name  
$username=""// Mysql username  
$password=""// Mysql password  
$db_name="test"// Database name  
$tbl_name="forum_question"// Table name  

// Connect to server and select databse. 
mysql_connect("$host""$username""$password")or die("cannot connect");  
mysql_select_db("$db_name")or die("cannot select DB"); 

$sql="SELECT * FROM $tbl_name WHERE id='$id'"
$result=mysql_query($sql); 

$rows=mysql_fetch_array($result); 
?> 
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="1" bgcolor="#FFFFFF"> 
<tr> 
<td bgcolor="#F8F7F1"><strong><? echo $rows['topic']; ?></strong></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><? echo $rows['detail']; ?></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><strong>By :</strong> <? echo $rows['name']; ?> <strong>Email : </strong><? echo $rows['email'];?></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><strong>Date/time : </strong><? echo $rows['datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
</table> 
<BR> 
<?php 
$tbl_name2
="forum_answer"// Switch to table "forum_answer"  

$sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id'"
$result2=mysql_query($sql2); 

while(
$rows=mysql_fetch_array($result2)){ 
?> 
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td bgcolor="#F8F7F1"><strong>ID</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_id']; ?></td> 
</tr> 
<tr> 
<td width="18%" bgcolor="#F8F7F1"><strong>Name</strong></td> 
<td width="5%" bgcolor="#F8F7F1">:</td> 
<td width="77%" bgcolor="#F8F7F1"><? echo $rows['a_name']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Email</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_email']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Answer</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_answer']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Date/Time</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
</table><br> 

<? 


$sql3="SELECT view FROM $tbl_name WHERE id='$id'"
$result3=mysql_query($sql3); 

$rows=mysql_fetch_array($result3); 
$view=$rows['view']; 

// if have no counter value set counter = 1 
if(empty($view)){ 
$view=1
$sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'"
$result4=mysql_query($sql4); 


// count more value 
$addview=$view+1
$sql5="update $tbl_name set view='$addview' WHERE id='$id'"
$result5=mysql_query($sql5); 

mysql_close(); 
?> 
<BR> 
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="add_answer.php"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td width="18%"><strong>Name</strong></td> 
<td width="3%">:</td> 
<td width="79%"><input name="a_name" type="text" id="a_name" size="45"></td> 
</tr> 
<tr> 
<td><strong>Email</strong></td> 
<td>:</td> 
<td><input name="a_email" type="text" id="a_email" size="45"></td> 
</tr> 
<tr> 
<td valign="top"><strong>Answer</strong></td> 
<td valign="top">:</td> 
<td><textarea name="a_answer" cols="45" rows="3" id="a_answer"></textarea></td> 
</tr> 
<tr> 
<td> </td> 
<td><input name="id" type="hidden" value="<? echo $id?>"></td> 
<td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td> 
</tr> 
</table> 
</td> 
</form> 
</tr> 
</table>
قبل الدخول فى تفصيل الكود .. فى الملف السابق وضعنا وصلة الموضوع بهذا الشكل




كود PHP:
  view_topic.php?id=


و قولنا ان # هى رقم الموضوع و اضافة id=# فى نهاية الرابط يعنى ان قيمة المتغير $id فى هذا الملف هى # و عن طريق هذا المتغير يتم الاستعلام من قاعدة البيانات




كود PHP:
  <?php 
$host
="localhost"// Host name  
$username=""// Mysql username  
$password=""// Mysql password  
$db_name="test"// Database name  
$tbl_name="forum_question"// Table name  

// Connect to server and select databse. 
mysql_connect("$host""$username""$password")or die("cannot connect");  
mysql_select_db("$db_name")or die("cannot select DB"); 

$sql="SELECT * FROM $tbl_name WHERE id='$id'"
$result=mysql_query($sql); 

$rows=mysql_fetch_array($result); 
?>
جزء مكرر و هو الاتصال بقاعدة البيانات و الاستعلام عن البيانات




كود PHP:
  <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bordercolor="1" bgcolor="#FFFFFF"> 
<tr> 
<td bgcolor="#F8F7F1"><strong><? echo $rows['topic']; ?></strong></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><? echo $rows['detail']; ?></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><strong>By :</strong> <? echo $rows['name']; ?> <strong>Email : </strong><? echo $rows['email'];?></td> 
</tr> 

<tr> 
<td bgcolor="#F8F7F1"><strong>Date/time : </strong><? echo $rows['datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
</table> 
<BR>
جزء خاص بعرض الموضوع و تم استخدام نتائج الاستعلام فى عرض الموضوع مثل



كود PHP:
  $rows['detail'
و هو الخاص بعرض الموضوع نص الموضوع و هكذا مع باقى المتغيرات




كود PHP:
  <?php 
$tbl_name2
="forum_answer"// Switch to table "forum_answer"  

$sql2="SELECT * FROM $tbl_name2 WHERE question_id='$id'"
$result2=mysql_query($sql2); 

while(
$rows=mysql_fetch_array($result2)){ 
?>
هنا بداية حلقة التكرار التى سوف يتم استخدامها فى عرض الدروس باستخدام دالة mysql_fetch_array .. راجع المشاركة السابقة



كود PHP:
  <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td bgcolor="#F8F7F1"><strong>ID</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_id']; ?></td> 
</tr> 
<tr> 
<td width="18%" bgcolor="#F8F7F1"><strong>Name</strong></td> 
<td width="5%" bgcolor="#F8F7F1">:</td> 
<td width="77%" bgcolor="#F8F7F1"><? echo $rows['a_name']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Email</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_email']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Answer</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_answer']; ?></td> 
</tr> 
<tr> 
<td bgcolor="#F8F7F1"><strong>Date/Time</strong></td> 
<td bgcolor="#F8F7F1">:</td> 
<td bgcolor="#F8F7F1"><? echo $rows['a_datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
</table><br>
هذا الجزء هو جسم حلقة التكرار و الذى سيتكرر حتى نهاية المصفوفة و هو يجمع بين التصميم و البرمجة .. يتم بناء الجدول بلغة html أما محتويات الجدول من بيانات فيتم وضعها بواسطة متغيرات مصفوفة الاستعلام التى نتجت من الدالة mysql_fetch_array



كود PHP:
  <? 


$sql3="SELECT view FROM $tbl_name WHERE id='$id'"
$result3=mysql_query($sql3); 

$rows=mysql_fetch_array($result3); 
$view=$rows['view']; 

// if have no counter value set counter = 1 
if(empty($view)){ 
$view=1
$sql4="INSERT INTO $tbl_name(view) VALUES('$view') WHERE id='$id'"
$result4=mysql_query($sql4); 
}else{ 
// count more value 
$addview=$view+1
$sql5="update $tbl_name set view='$addview' WHERE id='$id'"
$result5=mysql_query($sql5); 

mysql_close(); 
?>

اما هذا الجزء فهو الخاص بتسجيل زيارات الموضوع لتسجيلها فى بيانات الموضوع .. فى البداية تم استخدام جملة الشرط if للتأكد من ان هناك قيمة سابقة فى خانة الزيارات ( views ) و اذا لم يوجد اى زيارات يتم تنفيذ امر sql يقوم بجعل عدد الزيارات = 1

فاذا لم يتحقق الشرط يكون هناك امر sql اخر يضيف الى القيمة السابقة من الزيارات رقم واحد ... ثم بعد ذلك غلق الاتصال بقاعدة البيانات



كود PHP:
   <BR> 
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<form name="form1" method="post" action="add_answer.php"> 
<td> 
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td width="18%"><strong>Name</strong></td> 
<td width="3%">:</td> 
<td width="79%"><input name="a_name" type="text" id="a_name" size="45"></td> 
</tr> 
<tr> 
<td><strong>Email</strong></td> 
<td>:</td> 
<td><input name="a_email" type="text" id="a_email" size="45"></td> 
</tr> 
<tr> 
<td valign="top"><strong>Answer</strong></td> 
<td valign="top">:</td> 
<td><textarea name="a_answer" cols="45" rows="3" id="a_answer"></textarea></td> 
</tr> 
<tr> 
<td> </td> 
<td><input name="id" type="hidden" value="<? echo $id?>"></td> 
<td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td> 
</tr> 
</table> 
</td> 
</form> 
</tr> 
</table>

هذا الجزء بسيط جدا و هو عبارة عن نموذج ارسال موجه للملف add_answer.php لاضافة رد جديد فى الموضوع .. مع ملاحظة وجود حقل خفى hidden يحتوى على رقم الموضوع حتى يستخدم فى حفظ البيانات

و هكذا نكون انتهينا من هذا الملف

يتبع ..
achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 12:42 PM
  #6
achraf.mouni
مشرف قسم
الكمبيوتر وتطوير المواقع والانترنت
مشرف قسم
الرياضيات والإعلام الآلي
 الصورة الرمزية achraf.mouni
 
تاريخ التسجيل: 08-09-2008
الدولة: الجزائر
المشاركات: 2,439
achraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداعachraf.mouni عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

كتابة ملف add_answer.php :

هذا الملف يقوم بحفظ الردود الجديدة لا يظهر فى المتصفح منه الا رسالة تأكيد حفظ الرد او رسالة خطأ

كود الملف :
كود PHP:


 <?php 
$host
="localhost"// Host name  
$username=""// Mysql username  
$password=""// Mysql password  
$db_name="test"// Database name  
$tbl_name="forum_answer"// Table name  

// Connect to server and select databse. 
mysql_connect("$host""$username""$password")or die("cannot connect");  
mysql_select_db("$db_name")or die("cannot select DB"); 

$datetime=date("d/m/y H:i:s"); 

// Find highest answer number.  
$sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE question_id='$id'"
$result=mysql_query($sql); 
$rows=mysql_fetch_array($result); 

// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1  
if ($rows) { 
$Max_id $rows['Maxa_id']+1

else { 
$Max_id 1


// Insert answer  
$sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')"
$result2=mysql_query($sql2); 

if(
$result2){ 
echo 
"Successful<BR>"
echo 
"<a href='view_topic.php?id=".$id."'>View your answer</a>"

// If added new answer, add value +1 in reply column  
$tbl_name2="forum_question"
$sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'"
$result3=mysql_query($sql3); 


else { 
echo 
"ERROR"


mysql_close(); 
?>
تفصيل الكود :

كود PHP:

 
 $host
="localhost"// Host name  
$username=""// Mysql username  
$password=""// Mysql password  
$db_name="test"// Database name  
$tbl_name="forum_answer"// Table name  

// Connect to server and select databse. 
mysql_connect("$host""$username""$password")or die("cannot connect");  
mysql_select_db("$db_name")or die("cannot select DB"); 

$datetime=date("d/m/y H:i:s"); 
جزء خاص بالاتصال بقاعدة البيانات و تحديد تاريخ حفظ الرد

كود PHP:


 
// Find highest answer number.  
$sql="SELECT MAX(a_id) AS Maxa_id FROM $tbl_name WHERE question_id='$id'"
$result=mysql_query($sql); 
$rows=mysql_fetch_array($result); 
// add + 1 to highest answer number and keep it in variable name "$Max_id". if there no answer yet set it = 1  
if ($rows) { 
$Max_id $rows['Maxa_id']+1

else { 
$Max_id 1


// Insert answer  
$sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_email, a_answer, a_datetime)VALUES('$id', '$Max_id', '$a_name', '$a_email', '$a_answer', '$datetime')"
$result2=mysql_query($sql2); 

هذا الجزء يقوم بتحديد رقم اخر رد فى هذا الموضوع و هنا يأتى دور دالة الشرط if فاذا كان هناك ردود سابقة يضيف رقم 1 الى رقم اخر رد و يحفظها فى متغير Max_id اما اذا كان هذا اول رد يجعل قيمة max_id = 1 بعد ذلك تأتى اوامر sql لحفظ البيانات الجديدة الخاصة بالرد
كود PHP:
 
if($result2){ 
echo 
"Successful<BR>"
echo 
"<a href='view_topic.php?id=".$id."'>View your answer</a>"

// If added new answer, add value +1 in reply column  
$tbl_name2="forum_question"
$sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'"
$result3=mysql_query($sql3); 


else { 
echo 
"ERROR"


mysql_close(); 
?> 

فى هذا الجزء يتم التحقق من ان البيانات تم حفظها و يأتى برسالة تأكيد حفظ البيانات اما فى حالة الخطأ يظهر رسالة خطأ .. بالاضافة الى امر sql يقوم بتعديل رقم الرد .. ثم فى النهاية دالة اغلاق الاتصال بقاعدة البيانات

تم الانتهاء من كتابة هذا الملف
achraf.mouni غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 01:03 PM
  #7
يوسف الضادي
VIP_MEMBRE
 الصورة الرمزية يوسف الضادي
 
La spécialité: Informatique
جامعة ابن خلدون تيارت
تاريخ التسجيل: 17-08-2008
الدولة: تيارت/الرحوية
المشاركات: 5,333
يوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداعيوسف الضادي عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

بارك الله فيك أخي
شرح مميز من عند مشرف مميز
تحياتي البرمجية اليك
__________________
أشهد أن لا اله الا الله وأن محمد رسول الله

يوسف الضادي غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 09:56 PM
  #8
نرمين*
مشرفة منتدى
الرياضيات والإعلام الآلي
 الصورة الرمزية نرمين*
 
La spécialité: Autres
اخرى ( جامعة عربية او اجنبية )
تاريخ التسجيل: 08-11-2008
الدولة: الجزائر
المشاركات: 3,989
نرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

اقتباس:
المشاركة الأصلية كتبت بواسطة achraf.mouni مشاهدة المشاركة
السلام عليكم ورحمة الله تعالى وبركاته

فى هذا الموضوع يتم شرح كيفية برمجة منتدى مصغر و هذا الشرح مفيد جدا بإذن الله لحديثى العهد بلغة PHP و من أهم فوائد الموضوع شرح كيفية التعامل مع قواعد البيانات و ربط النماذج بالبرمجة و كيفية الدمج بين التصميم والبرمجة

نبدأ ... بسم الله

أولا تحديد الملفات التى سوف يتم كتابتها :

create_topic.php
add_topic.php
main_forum.php
view_topic.php
add_answer.php


ثانيا قاعدة البيانات و بنائها :
فى هذا الدرس سنحتاج فقط إلى جدولين و هما forum_question و forum_answer

و يكون بناءهم بهذا الشكل



كود PHP:
  CREATE TABLE `forum_question` ( 
`
idint(4NOT NULL auto_increment
`
topicvarchar(255NOT NULL default ''
`
detaillongtext NOT NULL
`
namevarchar(65NOT NULL default ''
`
emailvarchar(65NOT NULL default ''
`
datetimevarchar(25NOT NULL default ''
`
viewint(4NOT NULL default '0'
`
replyint(4NOT NULL default '0'
PRIMARY KEY (`id`) 
TYPE=MyISAM AUTO_INCREMENT=

CREATE TABLE `forum_answer` ( 
`
question_idint(4NOT NULL default '0'
`
a_idint(4NOT NULL default '0'
`
a_namevarchar(65NOT NULL default ''
`
a_emailvarchar(65NOT NULL default ''
`
a_answerlongtext NOT NULL
`
a_datetimevarchar(25NOT NULL default ''
KEY `a_id` (`a_id`) 
TYPE=MyISAM

بهذا نكون انتهينا من بناء جداول قاعدة البيانات التى سيتم تسجيل المواضيع و الردود بها

يتبع ..
عندى اضافة
لازم نكتبو هكذا


كود PHP:
<?php 
         $id
=mysql_connect("localhost","root","");
         
mysql_select_db("test",$id);


  

     
$q6=mysql_query(" CREATE TABLE `forum_question` (
      `id` int(4) NOT NULL auto_increment,
      `topic` varchar(255) NOT NULL default '',
     `detail` longtext NOT NULL,
      `name` varchar(65) NOT NULL default '',
      `email` varchar(65) NOT NULL default '',
      `datetime` varchar(25) NOT NULL default '',
       `view` int(4) NOT NULL default '0',
       `reply` int(4) NOT NULL default '0',
        PRIMARY KEY (`id`)
          ) TYPE=MyISAM AUTO_INCREMENT=1 ;"
);
           
$n6=mysql_query($q6,$id);
 
         
$q7=mysql_query("CREATE TABLE `forum_answer` (
           `question_id` int(4) NOT NULL default '0',
            `a_id` int(4) NOT NULL default '0',
             `a_name` varchar(65) NOT NULL default '',
              `a_email` varchar(65) NOT NULL default '',
               `a_answer` longtext NOT NULL,
                `a_datetime` varchar(25) NOT NULL default '',
                 KEY `a_id` (`a_id`)
                 ) TYPE=MyISAM;"
);
           
$n7=mysql_query($q7,$id);
  
  
  
  
?>
و نخزن في ملف .php
ولازم ننشئ base
فارغة و نسميها
test
__________________
رباهـ قد عشت في دنياي مغتربا ,, ويلاهـ إن أغترب في العالمـ الثاني
أسـتـغـفـر الله مــن كفران نعمته ,, بل فوق ما أستحق
الله أعطاني
ألمـ يجدني أخا غي فأرشدني ,, وهائما غير ذي مأوى فأواني
ألمـ يجدني أخا جهل فعلمني ,, وعائلا غير ذي وجد فأغناني
لبيكـ ملئ فمي ،، يارب يارب من قلبي ووجداني







نرمين* غير متواجد حالياً  
رد مع اقتباس
قديم 08-06-2009, 10:11 PM
  #9
إحساس حساس
VIP_MEMBRE
مشرفة سابقة
 الصورة الرمزية إحساس حساس
 
La spécialité: Autres
مؤسسة تعليم ثانوي ( ثانوية)
تاريخ التسجيل: 16-09-2008
الدولة: مملكتي الخآصة
المشاركات: 2,303
إحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداعإحساس حساس عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

شرح رائع
مشكور
__________________
[ نيوـو ] موآأضيعي

لن تكتمـل ..!!
إلا بطلتكم و إضآأفآاتكم
إحساس حساس غير متواجد حالياً  
رد مع اقتباس
قديم 10-07-2009, 10:46 PM
  #10
khelef
VIP_MEMBRE
 الصورة الرمزية khelef
 
تاريخ التسجيل: 29-05-2008
المشاركات: 1,023
khelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداعkhelef عضو محترف الابداع
افتراضي رد: شرح كيفية برمجة منتدى مصغر ب php

شـكــ وبارك الله فيك ـــرا لك
لكن اريد ان تفصل قليلا في الشرح اعني الخطوات كتابة الكود في الدريم ويفر
__________________
كن حذرا اليوم مما تزرع لتحصد غدا

وعلى قدر عطائك في الحياة تأتيك ثمارها


رب ضاحك والألم يعتصر كبده، وآخر هادئ الجنان والسعادة والحبور تحمله على جناحيها وتطير به في عوالمها.
khelef غير متواجد حالياً  
رد مع اقتباس
إضافة رد

الكلمات الدلالية (Tags)
أشعر, منتدى, برمجة, كيفية

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
طلب مشروع مصغر djamel-hope قسم الإستفسارات و الطّلبات 3 15-05-2011 07:09 PM
أول أصغر أطول azize_arifi مسابقات مختلفة منظمة 3 22-02-2010 07:18 PM
:: شرح كيفية عمل منتدى الكتروني على جهاز الكمبيوتر :: جوكر المنتدى تطوير المواقع و المنتديات 0 06-04-2009 07:20 PM
أصغر جاسوس امل الوطن شخصيات تركت بصماتها 12 25-09-2008 11:25 PM
أصغر ارهابي في العالم Mr.Dj منتدى عام 5 06-04-2008 11:16 PM


الساعة الآن 05:11 AM.