[شرح] كيف تعمل سكربت ؟ --- 8 أجزاء بالشرح الممل - منتديات نور الاستقامة
  التعليمـــات   قائمة الأعضاء   التقويم   البحث   مشاركات اليوم   اجعل كافة الأقسام مقروءة
أخواني وأخواتي..ننبه وبشدة ضرورة عدم وضع أية صور نسائية أو مخلة بالآداب أو مخالفة للدين الإسلامي الحنيف,,,ولا أية مواضيع أو ملفات تحتوي على ملفات موسيقية أو أغاني أو ماشابهها.وننوه أيضاَ على أن الرسائل الخاصة مراقبة,فأي مراسلات بين الأعضاء بغرض فاسد سيتم حظر أصحابها,.ويرجى التعاون.وشكراً تنبيه هام


** " ( فعاليات المنتدى ) " **

حملة نور الاستقامة

حلقات سؤال أهل الذكر

مجلة مقتطفات

درس قريات المركزي

مجلات نور الاستقامة



الإهداءات



نور السكربتات ومجلات إدارة المحتوى سكربتات عربية ومجانية ومجلات إدارة المحتوى


إضافة رد
 
أدوات الموضوع
265  كيف تعمل سكربت ؟ --- 8 أجزاء بالشرح الممل
كُتبَ بتاريخ: [ 02-21-2011 ]
رقم المشاركة : ( 1 )
الصورة الرمزية عابر الفيافي
 
عابر الفيافي غير متواجد حالياً
 
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363
قوة التقييم : عابر الفيافي قمة التميز عابر الفيافي قمة التميز عابر الفيافي قمة التميز عابر الفيافي قمة التميز


نقره لعرض الصورة في صفحة مستقلة

كيف تعمل سكربت ؟ --- الجزء الاول


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


مساكم الله بالخير والمسرات


- هل تحب أن تتعمل برمجة سكربت ما ؟
- هل تحب ان تكون صفحات موقعك ديناميكيه ؟
- هل تكره الركود لصفحات موقعك ؟
- هل تكره التعديل اليدوي للصفحات ؟
- هل تحت أن تعمل عملك في يدك دون اللجوء لدفع الأموال ؟
- هل تحب ان يكون موقعك متجدد ؟
- هل تحب إنتشار موقعك في محركات البحث العالميه ؟
- هل تحب ترتيب صفحات موقعك كيفما تشاء ؟


إذا كان جوبك (( نعم )) فأهلا بك وسهلا ولنتعلم سويا طريقة برمجة سكربت بإستخدام لغة برمجة المواقع php وبالإعتماد على قواعد البيانات mysql .

وإذا كان جوابك (( لا )) فرجاء ورّنــــا عرض أكتافك !!


في بداية الأمر يجب أن تكون لديك خلفيه عن التعامل مع اكواد php ولو حتى 40% لا بأس في ذلك ان شاء الله .

واذا لم تكن لديك خبره وتحب تعلم هذه اللغه فإليك دروس تعليميه لها
http://www.tlbat.com/indexcat-2.html


وأيضا يلزمك برنامج لتحرير أكواد الـ php وقد قمت بتوفيره وهو نفس البرنامج الذي استخدمه في جهازي .
برنامج PHP Expert Editor
حجمه تقريبا : 2.600 ميغا
طريقة التنصيب سهله ومرفقه معاه وايضا الكراك مرفق مع البرنامج .


أيضا يفضل ان يكون لديك في جهازك سيرفر اباتشي او ما يعرف بـ localhost
وإليك ببرنامج يفي بالغرض
http://daif.net/camel

================

والآن سنقوم بعمل السكربت التالي ان شاء الله :
- سكربت قصص .


================

وطبعا طريقة الشرح بدأ من :
(1) لوحة التحكم >>> وتشمل على أوامر قاعدة البيانات :
-> INSERT
-> UPDATE
-> DELETE
يعني الإضافة والتعديل والحذف .
(2) صفحة العرض >>> وتشمل على الأمر :
-> SELECT
-> UPDATE
يعني عرض السجلات من القاعده ومن ثم تحديث عدادات الزوار اذا وجدت .



هذا ما لدي حاليا وان شاء الله في المستقبل القريب سيتم البدء في الدروس والتطبيق العملي .

;dt julg s;vfj ? --- 8 H[.hx fhgavp hgllg





توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس

كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 2 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت --- الجزء الثاني


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


نبدأ مباشرة بالجد !!


إذا كنا نريد الديناميكه والحيويه والتجدد في مواقعنا لابد أن نستخدم قواعد البيانات في برمجياتنا .


لذلك فإن قواعد البيانات تقوم بفهرسة ما تقوم بإدخاله بشكل منظم ومرتب ثم جلب السجلات من القاعده كيفما تشاء وفي أي وقت أردت .


بحيث قواعد البيانات تمكننا من إضافة النصوص والمحتويات وحتى الملفات الى قاعدة البيانات وبالإمكان أيضا استخدام حقل أساسي أو بما يعرف بالمفتاح الأساسي PRIMARY KEY وهو بإختصار شديد لايقبل التكرار ولا التعديل ويضيف العدد 1 تلقائيا حين اضافة مواد بالقاعده يعني راح يعمل المفتاح بالتسلسل 1,2,3,4,5,6 وهذا الى آخر ولكل رقم استغلاليه يعني لايمكن نهائيا تكراره ولا يمكن تعديله .


وقواعد البيانات عبارة عن جداول والجداول تحتوي على حقول وكل حقل يحتوي سجلات سواء صفوف او أعمده مثال بسيط >>>

اسم الجدول مثلا car
اسم الحقول للجدول مثلا id,type,model,price
بحيث ان الحقل id يكون مفتاح اساسي .
والسجلات ستكون كالتالي فرضا >>>

1,bmw,2007,15.000kd


ماعلينا من الكلام اللي فوق أصلا لازم تكون عندك خلفيه عن استخدام قواعد البيانات ولو بسيطه .


في سكربتنا هذا سنعمل له مواصفات بسيطه مثل اقسام وفرعيات وعداد زوار لكل قصه وخلافه .


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


فلنفرض اننا نريد جدولين فقط وهما جدول خاص بالأقسام وجدول خاص بمواضيع القصص .


أولا جدول الأقسام ستكون حقوله كالتالي :
- مفتاح اساسي .
- إسم للقسم .
- صورة تعبيريه للقسم .
- ترتيب القسم .
- قسم فرعي وسيكون تلقائيا 0 اذا لم يتم تحديد قسم رئيسي .

ثانيا جدول مواضيع القصص وحقوله كالتالي :
- مفتاح اساسي .
- عنوان القصة .
- موضوع القصة .
- رقم القسم (( سيكون رقم المفتاح الاساسي في جدول الأقسام )) .
- الكاتب .
- الزيارات .
- التقييم .
- عدد المقيمين .
- تاريخ الإضافة .
- ترتيب القصة .


وإليك الإستعلام الخاص في إنشاء الجداول والحقول كما في الخصائص السابقة .

كود PHP:
CREATE TABLE `story_cat` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(99NOT NULL default '',
  `
imagevarchar(99NOT NULL default '',
  `
subint(10NOT NULL default '0',
  `
order_catint(10NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM ;

CREATE TABLE `story` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(255NOT NULL default '',
  `
textlongtext NOT NULL,
  `
catint(11NOT NULL default '0',
  `
writervarchar(255NOT NULL default '',
  `
visint(11) default '0',
  `
voteint(11NOT NULL default '0',
  `
countint(11NOT NULL default '0',
  `
datevarchar(255NOT NULL default '0',
  `
order_storyint(11NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM 


كل ما عليك هو انشاء قاعدة بيانات جديده ثم زراعة الاستعلامات به .





ويتبع ان شاء الله قريبا التكمله .


والله ولي التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 3 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (اضافة الاقسام) --- الجزء الثالث


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


الجزء الثالث يتكلم عن كيفية إضافة النصوص الى قواعد البيانات .


طبعا سبق وذكرت أننا نبدأ ببرمجة لوحة التحكم للسكربت أولا أو بما يعرف ساحة الأدمن .


عموما هالحين طال عمرك روح لمجلد السيرفر اللي راكب بجهازك وانشيء مجلد جديد فلنفرض ان إسم المجلد سيكون story ثم اضف بداخل المجلد مجلد ثاني بإسم admin وهذا المجلد سيتم وضع جميع ملفات التحكم بالسكربت ان شاء الله .


بما أننا قمنا بزراعة هذه الجداول في قاعدة البيانات

كود PHP:
CREATE TABLE `story_cat` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(99NOT NULL default '',
  `
imagevarchar(99NOT NULL default '',
  `
subint(10NOT NULL default '0',
  `
order_catint(10NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM ;

CREATE TABLE `story` (
  `
idint(11NOT NULL auto_increment,
  `
namevarchar(255NOT NULL default '',
  `
textlongtext NOT NULL,
  `
catint(11NOT NULL default '0',
  `
writervarchar(255NOT NULL default '',
  `
visint(11) default '0',
  `
voteint(11NOT NULL default '0',
  `
countint(11NOT NULL default '0',
  `
datevarchar(255NOT NULL default '0',
  `
order_storyint(11NOT NULL default '0',
  
PRIMARY KEY  (`id`)
TYPE=MyISAM 

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

>>>>>> هيا فلــنعمل ملف إتصال بقاعدة البيانات :
بمجلد story انشيء ملف php بإسم config.php وسنكتب به كود الإتصال بقاعدة البيانات .
وهو كالتالي :

كود PHP:
 <?
$localhost 
"localhost"
$userdb    "root"
$passdb    ""
$namedb    "story"
$connect = @mysql_connect($localhost,$userdb,$passdb)  
or die (
"no connect database"); 
$xx= @mysql_select_db ($namedb,$connect) or die ("no select database");
?>


المتغير $localhost هو إسم السيرفر وغالبا يأتي اسمه localhost .
المتغير $userdb هو إسم مستخدم قاعدة البيانات .
المتغير $passdb هو الرقم السري لقاعدة البيانات .
المتغير $namedb هو إسم قاعدة البيانات .

أما المتغير $connect فلا تغير به شي وهو يحتوي على الداله mysql_connect الخاصه في الاتصال في قاعدة البيانات وايضا المتغير $xx لاتغير به شيء وهو يحتوي على الدالة mysql_select_db بحيث يتم تحديد إسم القاعدة المستخدمه .

وهكذا إنتهينا من كتابة ملف الاتصال بقاعدة البيانات config.php .

==============

والآن بمجلد admin انشيء ملف بإسم section.php وهو خاص بإضافة الأقسام لقاعدة البيانات :
قم بعمل نموذج إدخال بيانات يحتوي حقول جدول الأقسام الذي بالقاعدة !!

إليك بالنموذج كاملا :

كود PHP:
<form method="post" action="section_insert.php"> 
<div align="center"> 
  <center> 
  <table border="1" cellpadding="2" style="border-collapse: collapse" bordercolor="#111111" width="98%" id="AutoNumber1" dir="rtl"> 
     <tr> 
      <td width="100%" colspan="2"> 
      <p align="center">إضافة قسم جديد</td> 
    </tr> 
    <tr> 
      <td width="20%">إسم القسم :</td> 
      <td width="80%"><input size="60" name="name"></td> 
    </tr> 
    <tr> 
      <td width="20%">صورة القسم :</td> 
      <td width="80%"><input size="60" name="image" dir="ltr"></td> 
    </tr> 
    <tr> 
      <td width="20%">ترتيب القسم :</td> 
      <td width="80%"><input size="60" name="order_cat"></td> 
    </tr> 
    <tr> 
      <td width="20%">قسم رئيسي أو فرعي :</td> 
      <td width="80%"> 
<select size="1" name="sub"> 
<OPTION value="0" selected>قسم رئيسي</OPTION> 
<?php 
include("../config.php"); 
$sql mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id desc")  
or die (
"error"); 
while(
$cat=mysql_fetch_array($sql)) 

echo 
"<OPTION value='$cat[id]'>$cat[name]</OPTION>"

?> 
</select> 
      </td> 
    </tr> 
     <tr> 
      <td width="100%" colspan="2"> 
      <p align="center"><input type="submit" value="إضافة" name="xxx"></td> 
    </tr> 
  </table> 
  </center> 
</div> 
</form>




نقوم بشرح النموذج بإختصار :
السطر الأول للكود هو :

<form method="post" action="section_insert.php">


بحيث ان طريقة ارسال البيانات هي post أي ارسال البيانات مباشرة من الخانات الموجوده .
وأما الـ action وهي الصفحة التي يتم توجيه البيانات لها وفي مثالنا تم توجيهها الى الصفحه section_insert.php يعني لازم ننشيء ملف جديد بإسم section_insert.php ونكتب فيه أكواد الاستقبال للبيانات .>> سنتكلم به لاحقا .

حقول النص المكتوبه والمتمثله في اسم القسم وصورة القسم وترتيب القسم تكتب هكذا :

<input size="60" name="name">
<input size="60" name="image">
<input size="60" name="order_cat">


مايهمنا في هذا الكود هو اسم الحقل name !!
شوف أسماء الحقول اللي بالكود هي name,image,order_cat هي التي يتم استخدامها في كود استقبال البيانات في صفحة ادخال البيانات للقاعدة ...... أعتقد تم فهم السالفه .


وبالنسبة للقائمة المنسدله اللي مكتوب فيها قسم رئيسي فهذي ان تركت الخيار على ماهو عليه أي (( قسم رئيسي )) فسيتم اضافة رقم 0 تلقائيا وأما اذا إخترت احد الأقسام الموجوده بالقائمة فسيتم إضافة رقم القسم الذي اختره وسيصبح قسم فرعي ...... نعطي مثال بسيط :

فرضا اضفنا قسم بإسم
(( قصص إسلاميه ويحمل المفتاح الاساسي 1 )) >> قسم رئيسي .
وقسم آخر :
(( قصص واقعية ويحمل المفتاح الاساسي 2 )) >> قسم رئيسي .
ثم إضفنا قسم جديد مثلا سميناه (( قصص الصحابه )) ثم اخترنا من القائمه القسم
((قصص إسلاميه )) وهكذا سيتم عرض قسم قصص الصحابه داخل قسم قصص إسلاميه ... وهكذا

ووأما الاستعلام الخاص فهو بالكود السابق وسنفصله تفصيلا :

<?
include("../config.php");
$sql = mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id desc")
or die (
"error");
while(
$cat=mysql_fetch_array($sql))
{
echo
"<OPTION value='$cat[id]'>$cat[name]</OPTION>";
}
?>



أولا ادرجنا ملف الاتصال بقاعدة البيانات ولاحظ المسار تبع الملف
include("../config.php");
ثانيا قمنا بإستخدم SELECT لجلب البيانات من قاعدة البيانات للاقسام الرئيسيه ... وقمنا بإستخدام where لتحديد عرض اقسام معينه فقط بحيث جلعنا جلب البيانات فقط اذا كان الحقل sub=0 فقط ... ثم فتحنا دالة التكرار while لعرض جميع النتائج .

والآن انتهينا من شرح الكود كاملا ان شاء الله

==============

والآن ننشيء ملف جديد بإسم section_insert.php بمجلد admin حيث ان هذا الملف سيكون خاص في استقبال البيانات من النموذج السابق ثم تفحصها ثم ادراجها لقاعدة البيانات .

نكتب به الكود التالي :


<?
include("../config.php");

$name = addslashes($_POST['name']);
$image = addslashes($_POST['image']);
$order_cat = addslashes($_POST['order_cat']);
$sub = $_POST['sub'];

if (
$name == ""){
echo
"<div align='center'>لم تقم بإدخال إسم للقسم <a href='javascript:history.back(1)'>عودة للخلف</a></div>";
}else{
$query = @mysql_query ("INSERT INTO story_cat (name,image,sub,order_cat)
VALUES
('$name','$image','$sub','$order_cat')"
) or die ("error query");
echo
"<p align=center>تمت الاضافه بنجاح</p>";
echo
"<META HTTP-EQUIV='refresh' CONTENT='1; URL=section.php'>";
}
?>



في بداية الكود ادرجنا ملف الاتصال بالقاعده وهذا ضروري جدا لكل ملف اذا كان يتم التعامل مع قاعدة البيانات به .

<?
include("../config.php");
?>



ثم استقبلنا البيانات من النموذج عن طريق المصفوفه POST >>> ألا تذكر في كود النموذج الذي بالأعلى ان تم ارسال البيانات عن طريق post وها نحن استقبلناها كما ارسلناها .

<?
$name
= addslashes($_POST['name']);
$image = addslashes($_POST['image']);
$order_cat = addslashes($_POST['order_cat']);
$sub = $_POST['sub'];
?>



ولو تلاحظ أننا استخدما الداله addslashes في بعض المتغيرات !!! لمــاذا ياترى ؟
ببساطه لزيادة الأمان لقاعدة البيانات أولا وفائدتها إضافة سلاش (/) اذا كان النص المرسل يحتوي على (") أو (') وستكون النتيجه هكذا (/") أو (/') .

ثم عملنا شرط بحيث ان اذا كان لايوجد اسم للقسم لن يتم ادراج بيانات في القاعدة وسيتم طباعة رساله تفيد انه لم تقم بكتابة اسم للقسم .

واذا كتب الاسم فسيتم عمل INSERT أي ادراج البيانات للقاعده وسيتم عرض رساله بنجاح العمليه وسيتم توجيك تلقائيا لصفحة الإضافة للأقسام .
وهذا كود التوجيه للصفحه :

<?
echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=section.php'>";
?>



والآن انتهينا من عمل صفحات اضافة الاقسام والاقسام الفرعية .
وتجد الامثله بالمرفقات .

والله ولي التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 4 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (تعديل+حذف الأقسام) --- الجزء الرابع


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


قد تكلمنا في الأجزاء السابقه عن التالي :

كيف تعمل سكربت ؟ --- الجزء الاول
كيف تعمل سكربت --- الجزء الثاني
كيف تعمل سكربت (اضافة الاقسام) --- الجزء الثالث

وأما في هذا الموضوع سنتكلم عن كيفية تعديل الأقسام وحذفها !!

هل تعرف ماهو أمر قاعدة البيانات الذي يقوم بتحديث المعلومات ؟
هل تعرف ماهو أمر قاعدة البيانات الذي يقوم بحذف سجل معين ؟

طبعا هذه الأوامر هي UPDATE وهو لتحديث البيانات والأمر DELETE لحذف البيانات .

سنستخدم هذه الإستعلامات بتعديل او حذف البيانات حسب رقم الـ id الذي يتعتبر مفتاحا أساسيا لكل سجل في قاعدة البيانات ومستحيل تلقا رقم متشابه مع الآخر ولو تذكرون تكلمنا عنه في الجزء الثاني .

======

نبدأ الشغل وقولوا بإسم الله وتوكلنا على الله ولاحول ولاقوة إلا بالله

الحين خلنا نتكلم عن الطريقه اللي راح نتبعها بإختصار >> : >>
(1) ننشيء ملف جديد وهو لكي نعرض جميع البيانات للاقسام هو نضع بجانب كل قسم كلمة حذف أو تعديل .
(2) ننشيء ملف جديد حتى اذا ضغطنا على تعديل سيذهب بنا لهذا الملف وبه يتم عرض بيانات القسم كامله بخانات ويتم تعديلها بكيفك .
(3) ننشيء ملف جديد وهو خاص بإستعلام التعديل فور الانتهاء من تعديل البيانات .
(4) ننشيء ملف جديد حتى اذا ضغطنا على كلمة حذف سيتم حذف البيانات من خلاله .

هذا بإختصار >>> وتعالوا للشغل :

اذهب لمجلد admin وأنشيء ملف جديد بإسم section_select.php وهذا الملف سيتم عرض جميع بيانات الأقسام فيه وسنستخدم به دالة التكرار while حتى تعطينا جميع الأقسام الموجوده .

وهذا الكود ضعه بالملف :

كود PHP:
 <?php 
include("../config.php"); 
 
echo 
"<div align='center'> 
  <center> 
  <table border='1' cellpadding='2' style='border-collapse: collapse' bordercolor='#111111' width='98%' id='AutoNumber1' dir='rtl'> 
    <tr> 
      <td width='86%'> 
      <p align='center'>إسم القسم</td> 
      <td width='7%'><p align='center'>تعديل</p></td> 
      <td width='7%'><p align='center'>حذف</p></td> 
    </tr>"

$query mysql_query("SELECT id,name FROM story_cat order by id desc"); 
$numbercat mysql_num_rows($query); 
 
if(
$numbercat == 0){ 
echo 
"<tr> 
    <td width='100%' colspan='3'> 
    <p align='center'>لايوجد أقسام حاليا</p></td> 
  </tr>"

}else{ 
while(
$row mysql_fetch_array($query)) 

echo 
"<tr> 
      <td width='86%'>
$row[name]</td> 
      <td width='7%'><p align='center'><a href='section_edit.php?id=
$row[id]'>تعديل</a></p></td> 
      <td width='7%'><p align='center'><a href='section_delete.php?id=
$row[id]'>حــذف</a></p></td> 
    </tr>"



echo 
"</table> 
  </center> 
</div>"

?>

أول الملف وكالعادة دائما نقوم بتضمين ملف الاتصال بقاعدة البيانات

<?
include("../config.php");
?>



ثم عملنا جدول بسيط ذو 3 حقول بالفرونت بيج .

ثم قمنا بالاستعلام اولا عن عدد البيانات الموجوده بالقاعده

<?
$query
= mysql_query("SELECT id,name FROM story_cat order by id desc");
$numbercat = mysql_num_rows($query);
?>



ثم اتبعنا هذا الاستعلام شرط بحيث اذا كانت عدد البيانات تساوي صفر ستعرض لك رساله بأن لاتوجد اقسام واذا كان لا سيتم عرض البيانات التي بعد else و else تفيد بأن اذا ماتم تنفيذ الشرط الاول يتم تنفيذ مابعد else .
ثم كتبنا كود التكرار لجميع النتائج بالقاعدة :


كود PHP:
 <?
while($row mysql_fetch_array($query)) 

echo 
"<tr> 
      <td width='86%'>
$row[name]</td> 
      <td width='7%'><p align='center'><a href='section_edit.php?id=
$row[id]'>تعديل</a></p></td> 
      <td width='7%'><p align='center'><a href='section_delete.php?id=
$row[id]'>حــذف</a></p></td> 
    </tr>"

}
?>

ولاحظ ان هناك ملفات جديده بهذا الاستعلام وهي :
section_edit.php >>> للتعديل
section_delete.php >>> للحذف


وثم أغلاقنا حلقة التكرار بهذا بالقوس المعكوف الخاص به
}
واتبعناه كود اغلاق وسوم الجدول يعني كود html عادي .

إنتهى العمل في الملف section_select.php

========

والآن انشيء ملف جديد بمجلد admin وقم بتسميته section_edit.php ثم ضع الكود التالي بداخله


كود PHP:
 <?php 
include("../config.php"); 
$id intval($_GET['id']); 
 
$query mysql_query("SELECT * FROM story_cat where id=$id"); 
$info_cat mysql_fetch_array($query); 
 
echo 
"<form method='POST' action='section_update.php'> 
<input type='hidden' name='id' value='
$info_cat[id]'> 
 
<div align='center'> 
<center> 
<table border='1' cellpadding='2' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber2' dir='rtl'> 
 
<tr> 
<td width='30%'>إسم القسم :</td> 
<td width='70%'><input name='name' size='60' value='
$info_cat[name]'></td> 
</tr> 
 
<tr> 
<td width='30%'>صورة القسم :</td> 
<td width='70%'><input name='image' size='60' value='
$info_cat[image]'></td> 
</tr> 
 
<tr> 
<td width='30%'>ترتيب القسم :</td> 
<td width='70%'><input name='order_cat' size='60' value='
$info_cat[order_cat]'></td> 
</tr> 
 
 
<tr> 
<td width='30%'>القسم الرئيسي :</td> 
<td width='70%'> 
<select size='1' name='sub'> 
<OPTION value='0'>قسم رئيسي</OPTION>"

 
$sql mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id") or die ("error"); 
while(
$sub mysql_fetch_array($sql)) 

 
if(
$sub['id'] ==  $info_cat['sub']){ 
echo 
"<option value='$sub[id]' selected>$sub[name]</option>"
}else{ 
echo 
"<option value='$sub[id]'>$sub[name]</option>"

 

echo 
"</select> 
</td> 
</tr> 
 
<tr> 
<td width='100%' colspan='2' align='center'><input type='submit' value=' تعديل البيانات ' name='xxx'></td> 
</tr> 
 
</table> 
</center> 
</div> 
</form>"

?>


شرح الكود :

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

<?
$id
= intval($_GET['id']);
?>



استخدمنا المصفوفه $_GET وهي خاصه بجلب البيانات من عنوان الصفحه على عكس المصفوفه $_POST فهي تأتي بالبيانات من الفورم او النموذج تبع ادخال البيانات .

ماعلينا هالحين خلوني اوضح شويه المصفوفه $_GET وهي كما قلنا انها تأخذ المتغيرات والبيانات من رابط عنوان الصفحه بحيث اذا كان الرابط هكذا :

section_delete.php?id=3


فيجب علينا اخبار المصفوفه $_GET بأننا نريد جلب بيانات المتغير id من الرابط السابق وهي بالطبه رقم 3 وستكون المصفوفه هكذا

<?
$id
= $_GET['id'];
?>



فرضا عنوان الصفحه كالتالي :

section_delete.php?namecat=bwady


فهنا المتغير هو namecat وبيانات المتغير هي bwady
وستكون كتابة المصفوفه هكذا

<?
$id
= $_GET['namecat'];
?>



وسيتم عرض الناتج bwady

اعتقد الحين واااااااضحه الطبخه >>>> ولو تلاحظ اننا استعملنا الداله intval ومررنا المصفوفه عليها ياااااااااااااااترى ليش ؟؟

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

<?
$id
= intval($_GET['id']);
?>



ثم كتبنا استعلام لجلب بيانات القسم بشرط ان يكون رقم id يساوي $id كما في الكود

<?
$query
= mysql_query("SELECT * FROM story_cat where id=$id");
$info_cat = mysql_fetch_array($query);
?>



ثم عملنا form عادي وكتبنا الأكشن تبعه (( صفحة الاستقبال للفوم )) هي section_update.php

<form method='POST' action='section_update.php'>


والآن ستجد بداخل الفورم كود

<input type='hidden' name='id' value='$info_cat[id]'>


وتلاحظ انه حقل عادي ولكن نوعه hidden يعني مخفي ولا يتم عرضه بالصفحه وجعلنا اسمه id وقيمته $info_cat[id] أي رقم id تبع القسم وسيتم استعمال هذا الرقم في الصفحه التي تستقبل البيانات وهو ضروري جدا ليتم تحديد القسم المراد تحديث بياناته في صفحة الاستقبال للبيانات .

ثم عملنا جدول بالفرونت بيج ذو حقلين ووضعنا بداخل الفورم وبداخل الجدول ستجد خانات ادخال النصوص لها اسم ولها قيمه !!

لاحظ :

<input name='name' size='60' value='$info_cat[name]'>
<input name='image' size='60' value='$info_cat[image]'>
<input name='order_cat' size='60' value='$info_cat[order_cat]'>


لاحظ ان القيمة (value) تم جلبها من قاعدة البيانات وان الاسم لكل حقل مختلف عن الآخر وللعلم اسم الحقل تقدر تغيره لأي اسم تبيه بشرط انك وقت الاستقبال للبيانات تضع الاسم تبع الحقل اللي وضعه بمصفوفه حتى يتم التعرف عليه .

وبالأسفل ستلاحظ وجود استعلام آخر وهو

<?
$sql
= mysql_query ("SELECT id,name FROM story_cat where sub='0' order by id") or die ("error");
while(
$sub = mysql_fetch_array($sql))
{

if(
$sub['id'] == $info_cat['sub']){
echo
"<option value='$sub[id]' selected>$sub[name]</option>";
}else{
echo
"<option value='$sub[id]'>$sub[name]</option>";
}

}
?>



وهو خاص بالقسم الفرعي وقم تم جلب البيانات ووضعها في قائمه منسدله ولك ان تختار من القسم الفرعي الذي تريد او اعادة القسم الفرعي الى قسم رئيسي .

ولاحظ وجود شرط بمنتصف حلقة التكرار وهو اذا كان فرعي سيتم تحديده تلقائيا من القائمه بحيث ان رقم id يساوي رقم sub في القسم الذي سيتم تعديله .

وبأخير الكود ستجد زر تعديل البيانات فلا داعي لشرحه لأنه واضح .
ثم بالأخير يتم اغلاق وسم الفورم ووسم الجدول .

وانتهى شرح الملف section_edit.php .

==========

الآن انشيء ملف بإسم section_update.php وهو خاص بإستقبال البيانات للقسم وقت تحديثها .
ضع به الكود التالي :


كود PHP:
 <?
include("../config.php"); 
 
$id        $_POST['id']; 
$name      addslashes($_POST['name']); 
$image     addslashes($_POST['image']); 
$order_cat addslashes($_POST['order_cat']); 
$sub       $_POST['sub']; 
 
$query =  mysql_query("UPDATE story_cat SET name='$name', image='$image', sub='$sub', order_cat='$order_cat' where id=$id"); 
echo 
"<div align='center'>تمت عملية تحديث البيانات بنجاح</div>";
?>

اول سطر تضمين ملف الاتصال بقاعدة البيانات .
لو تتذكر الحقل المخفي hidden اللي قلت لك ضروري وسيتم استخدامه في عملية تحديث بيانات القسم حسب رقمه !!
وهاهو تم جلبه من خلال هذا الكود

$id = $_POST['id'];


وأما المتغيرات السابقه فهي كما شرحت سابقا هي اسماء الحقول وبياناتها .

وبما أننا نريد تعديل أو تحديث البيانات فيجب علينا استخدام الاستعلام UPDATE وهو كما بالكود السابق :

كود PHP:
 <?
$query 
=  mysql_query("UPDATE story_cat SET name='$name', image='$image', sub='$sub', order_cat='$order_cat' where id=$id");
?>


بحيث كل حقل في قاعدة البيانات يقابله متغير يحمل معلومات جديده تم تحديثها ويوجد شرط في نهاية الاستعلام وهو where يعني تعديل الجدول بالبيانات التي تم استقبالها بشرط يكون رقم id يساوي المتغير $id .

وبعدها سيتم عرض رساله اذا تم التحديث بشكل سليم .

انتهى شرح الملف section_update.php

=========

والآن سنقوم بعمل ملف لحذف البيانات من القاعدة .
قم بإنشاء ملف بإسم section_delete.php وقم بوضع الاكواد التاليه بداخله :

كود PHP:
 <?
include("../config.php"); 
$id intval($_GET['id']); 
$query =  mysql_query("DELETE FROM story_cat WHERE id = $id"); 
echo 
"<div align='center'>تمت عملية حذف البيانات بنجاح</div>";
?>

أربع أسطر فقط :
السطر الأول لتضمين ملف الاتصال بقاعدة البيانات .
السطر الثاني لجلب قمية المتغير id من العنوان وتم شرحه في اول الموضوع .
السطر الثالث استخدمنا الاستعلام DELETE لحذف البيانات وبأخير السطر ستجد الشرط WHERE بحيث سيتم حذف البيانات اذا كان رقم id ساوي المتغير $id فقط وأما لم نتبع الاستعلام شرط فسيتم حذف جميع بيانات الجدول !!!
السطر الرابع رساله تقول لك بأن تم الحذف بنجاح .

انتهى شرح الملف section_delete.php .

=============

وبهذا نكون قد انتهينا من ( إضافة - تعديل - حذف ) بيانات جدول الأقسام .
وفي هذا الموضع انشأنا أربع ملفات وهي :
(1) section_select.php
(2) section_edit.php
(3) section_update.php
(4) section_delete.php

وفي الجزء السابق تم إنشاء الملفات التالي :
(1) section.php
(2) section_insert.php


وستجدون جميع الملفات التي تم عملها حتى هذا الموضوع بالمرفقات .
وللعلم بعض الملفات قمت بإضافة بعض اكواد html فيها لأن بالمنتدى محجوب بعض الكلمات وايضا تم اضافة استايل css في بعض الملفات ... للعلم فقط .

هذا والله وتمنياتي للجميع بدوام التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 5 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (إضافة موضوع) --- الجزء الخامس


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

في الجزء السابق تم شرح طريقة تعديل وحذف الأقسام

وتم الانتهاء من الاقسام شرحا وتفصيلا .


والآن بهذا الموضوع سنقوم بشرح طريقة إضافة قصه جديده أو موضوع جديد .


قم بإنشاء ملف جديد في مجلد admin وقم بتسميته add_story.php وهالملف خاص بالنموذج الذي يحتوي حقول اضافة القصه لقاعدة البيانات ويحتوي على :

- عنوان القصة .
- كاتب القصة .
- ترتيب القصة .
- موضوع القصة .
- قسم القصة .
وسيتم إدراح تاريخ الإضافة تلقائيا لقاعدة البيانات بهذه الصورة 15/8/2007

قم بوضع الكود التالي في الملف :

كود PHP:
<form method="post" action="insert_story.php">
<div align="center">
  <center>
  <table border="1" cellpadding="2" style="border-collapse: collapse"  bordercolor="#111111" width="98%" id="AutoNumber1" dir="rtl">
     <tr>
      <td width="100%" colspan="2">
      <p align="center">إضافة قصة جديده</td>
    </tr>
    <tr>
      <td width="20%">عنوان القصة :</td>
      <td width="80%"><input size="60" name="name"></td>
    </tr>
    <tr>
      <td width="20%">إسم الكاتب :</td>
      <td width="80%"><input size="60" name="writer"></td>
    </tr>
    <tr>
      <td width="20%">ترتيب القصة :</td>
      <td width="80%"><input size="60" name="order_story"></td>
    </tr>
    <tr>
      <td width="20%">موضوع القصة :</td>
      <td width="80%"><textarea name="text" rows="6" cols="70"></textarea></td>
    </tr>
    <tr>
      <td width="20%">القسم الخاص بالقصة :</td>
      <td width="80%">
<select size="1" name="cat">
<?php
include("../config.php");
$sql mysql_query ("SELECT id,name FROM story_cat order by id desc"
or die (
"error");
while(
$cat=mysql_fetch_array($sql))
{
echo 
"<OPTION value='$cat[id]'>$cat[name]</OPTION>";
}
?>
</select>
      </td>
    </tr>
     <tr>
      <td width="100%" colspan="2">
      <p align="center"><input type="submit" value="إضافة" name="xxx"></td>
    </tr>
  </table>
  </center>
</div>
</form>

طبعا واضح من الكود ان نموذج اما كما يحلو للمبرمجين ان يسمونه فورم form

في بداية السطر مكتوب

<form method="post" action="insert_story.php">


حيث ان نوعية الإرسال هي post والملف اللي سترسل له البيانات هو insert_story.php

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

<input size="60" name="name">
<input size="60" name="writer">
<input size="60" name="order_story">


وايضا ستلاحظ وجود حقل من نوع textarea

<textarea name="text" rows="6" cols="70"></textarea>


يستخدم لكتابة المواضيع الكبيره التي تتعدد فيها الأسطر .

وايضا يوجد هذا الكود

<?
include("../config.php");
$sql = mysql_query ("SELECT id,name FROM story_cat order by id desc")
or die (
"error");
while(
$cat=mysql_fetch_array($sql))
{
echo
"<OPTION value='$cat[id]'>$cat[name]</OPTION>";
}
?>



وهو لجلب بيانات الأقسام كامله وقد حددنا id,name فقط لأن لاحاجة لنا ببقية حقول الجدول ... ووضعنا الاستعلام في قائمة منسدله لكي نختار القسم المناسب لنا .

وفي اسفل الكود ستجد زر الإضافة .

انتهى شرح الملف add_story.php

========

والآن قم بإنشاء ملف استقبال البيانات من الفورم السابق وقم بتسميته insert_story.php طبعا في مجلد admin واكتب به الاستعلام التالي :


كود PHP:
 <?
include("../config.php"); 
 
$d date("d"); 
$m date("m"); 
$y date("Y"); 
$Xdate "$d/$m/$y"
 
$name        addslashes($_POST['name']); 
$writer      addslashes($_POST['writer']); 
$order_story addslashes($_POST['order_story']); 
$text        addslashes($_POST['text']); 
$cat         $_POST['cat']; 
 
if (
$name == "" OR $text == "" OR $cat == ""){ 
echo 
"<div align='center'>قم بكتابة عنوان للقصة أو لايوجد موضوع للقصة أو لايوجد قسم <a href='javascript:history.back(1)'>عودة للخلف</a></div>"
}else{ 
$query = @mysql_query ("INSERT INTO story (name,writer,cat,order_story,text,date)  
VALUES 
('
$name','$writer','$cat','$order_story','$text','$Xdate')") or die ("error query"); 
echo 
"<p align=center>تمت الاضافه بنجاح</p>"
}
?>

قمنا بتضمين ملف الاتصال بقاعدة البيانات اولا ثم استخدمنا الدالة date لكتابة التاريخ في متغيرات هكذا :

<?
$d
= date("d");
$m = date("m");
$y = date("Y");
$Xdate = "$d/$m/$y";
?>



وتم تجميع اليوم والشهر والسنه بالأرقام في المتغير $Xdate

ثم استقبلنا المتغير التي تم ارسالها من الفورم السابق بالمصفوفه $_POST

<?
$name
= addslashes($_POST['name']);
$writer = addslashes($_POST['writer']);
$order_story = addslashes($_POST['order_story']);
$text = addslashes($_POST['text']);
$cat = $_POST['cat'];
?>



وكل حقل نصي استخدمنا معاه الدالة addslashes حتى لا تواجهنا مشاكل في اضافة المعلومات لقاعدة البيانات >> تم شرحها بأحد الأجزاء السابقه .

ثم استخدما الشرط التالي :

<?
if ($name == "" OR $text == "" OR $cat == ""){
?>



بحيث اذا كانت الحقول (( العنوان أو الموضوع أو القسم )) فارغه سيتم عرض رساله لك ولن تتم اضافة البيانات الى القاعده واذا كانت ليست فارغه فسيتم اضافة البيانات للقاعدة مباشرة

<?
$query
= @mysql_query ("INSERT INTO story (name,writer,cat,order_story,text,date)
VALUES
('$name','$writer','$cat','$order_story','$text',' $Xdate')"
) or die ("error query");
?>



هذا وقد تم الانتهاء من شرح الملف insert_story.php .


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

والله ولي التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 6 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (عرض الأقسام) --- الجزء السادس


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

إكاملا لسلسلة الدروس التي عملتها بخصوص كيفية عمل سكربت وكان آخر الدروس هو الجزء الخامس :
كيف تعمل سكربت (إضافة موضوع)


وهذا الشرح خاص بإنشاء ملف لعرض الأقسام .


الآن بمجلد السكربت أنشيء ملف جديد بإسم index.php وضع بداخله الكود التالي :

كود PHP:
 <?
include('config.php'); 
 
echo 
"<html dir='rtl'> 
 
<head> 
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'> 
<link rel='stylesheet' href='style.css' type='text/css'> 
<title>
$namesite</title> 
</head> 
<body leftmargin='0' topmargin='0'>"

 
include(
'header.htm'); 
 
echo 
"<br>";
?>
شرح الكود :

السطر الأول
<?
include('config.php');
?>


خاص بتضمين ملف الاتصال بقاعدة البيانات .

الكود التالي :
<?
echo "<html dir='rtl'>

<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
<link rel='stylesheet' href='style.css' type='text/css'>
<title>$namesite</title>
</head>
<body leftmargin='0' topmargin='0'>"
;
?>


وهو وسوم html عاديه مع تضمين ملف الاستايل style.css الخاص بالخطوط والانماط الخاصه بالسكربت .
ثم ستجد متغير إسمه $namesite بين وسمي title أي عنوان الصفحة العلوي والمتغير هو إسم موقعك .

ثم الكود التالي :
<?
include('header.htm');
?>


لاحظ اننا ضمنا صفحة وإسمها header.htm ويجب عليك إنشاء صفحة بنفس المسمى بداخل السكربت .


ثم الكود التالي :
<?
echo "<br>";
?>


وهو يعني سطر جديد .

==============================


ثم نضيف الاستعلام التالي تحت الكود السابق مباشرة :

<?
$Sql
= mysql_query("SELECT * FROM story_cat where sub=0 order by order_cat");
$cats = mysql_num_rows($Sql);
if(
$cats == 0){
echo
"<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
}else{

echo
"<div align='center'>
<center>
<table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber2'>"
;

$looptable = '0';
while (
$Row = @mysql_fetch_array($Sql))
{
++
$looptable;
if(
$looptable=="3"){
$tr = "</tr><tr>";
$looptable="0";
}else{
$tr = "";
}

$storys = mysql_num_rows(mysql_query("select id from story where cat='$Row[id]'"));

if (
$Row[image]){
$imageok = "<img border='0' src='$Row[image]' alt='$Row[name]'><br>";
}else{
$imageok = "";
}

echo
"<td width='33%' bgcolor='#FCFEF0'>
<p align='center'><a href='section.php?id=$Row[id]'>"
.$imageok."$Row[name]</a><br>عدد القصص $storys</td>
$tr"
;
}

echo
"</table>
</center>
</div>"
;
}
?>



شرح الكود :

لاحظ الاستعلام التالي ويحتوي على شرط !!

<?
$Sql
= mysql_query("SELECT * FROM story_cat where sub=0 order by order_cat");
$cats = mysql_num_rows($Sql);
if(
$cats == 0){
echo
"<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
}else{
?>


والشرط هو يأتي دائما بعد الكلمة where وهنا شرطنا يقول عرض جميع السجلات الموجوده بالجدول story_cat بشرط أن يكون الحقل sub يساوي صفر .

بمعنى أننا سنقوم بعرض جميع الأقسام التي التي يحمل الحقل sub تبع القسم الرقم صفر .

لأن الرقم صفر يعني ان القسم قسم رئيسي وأما اذا كان العدد غير الصفر فيكون القسم فرعي وليس رئيسيا .


ثم قمنا بترتيب الأقسام حسب الحقل order_cat .

ثم استخدمنا دالة حساب عدد السجلات بالجدول وهي :
<?
$cats
= mysql_num_rows($Sql);
?>


ثم أنشأنا بعدها شرط إذا كان عدد السجلات يساوي صفر فسيتم عرض رساله تفيد بأن لايوجد أقسام حاليا وأما اذا كان العدد أكبر من صفر فسيتم عرض الأقسام :
<?
if($cats == 0){
echo
"<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
}else{[
?>



ثم قمنا بفتح جدول عادي نقوم بتحريره يدويا او عن طريق الفرونت بيج وهو كالتالي :

<?
echo "<div align='center'>
<center>
<table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber2'>"
;
?>



ثم كتبنا متغير :
$looptable = '0';
وهو خاص في بداية عرض الأعمدة للجدول في السطر الواحد وجعلنا القيمه صفر حتى يبدأ العد من الصفر الى الأعلى .

ثم فتحنا حلقة تكرار لجلب جميع السجلات بجدول الأقسام :
<?
while ($Row = @mysql_fetch_array($Sql))
{
?>



ثم كتبنا بداخل حلقة التكرار :
<?
++$looptable;
if(
$looptable=="3"){
$tr = "</tr><tr>";
$looptable="0";
}else{
$tr = "";
}
?>


بحيث ان المتغير ++$looptable يزداد 1 لكل مره .
ثم قمنا بعمل شرط بحيث اذا تم عرض ثلاث أعمده بالجدول سيتم عرض البقيه بسطر جديد وهكذا الى ان ينتهي من جلب جميع السجلات .
ثم كتبنا الاستعلام التالي :
<?
$storys
= mysql_num_rows(mysql_query("select id from story where cat='$Row[id]'"));
?>


وهو خاص بعدد القصص التي داخل كل قسم بحيث جعلنا شرط الاستعلام أن الحقل cat الموجود في جدول القصص يساوي رقم حقل id الخاص بجدول أقسام القصص .

ثم كتبنا شرط آخر وهو خاص بصورة القسم :
<?
if ($Row[image]){
$imageok = "<img border='0' src='$Row[image]' alt='$Row[name]'><br>";
}else{
$imageok = "";
}
?>


بحيث اذا كانت الصوره موجوده ستعرض واذا ليست موجوده لن يتم عرض اي صوره .

ثم نكتب الكود التالي :
<?
echo "<td width='33%' bgcolor='#FCFEF0'>
<p align='center'><a href='section.php?id=$Row[id]'>"
.$imageok."$Row[name]</a><br>عدد القصص $storys</td>
$tr"
;
}
?>


وهو خاص بحقول الجدول الذي عملناه بالفرونت البيج وجعلنا عرض الحقل الواحد يساوي 33% لأننا قمنا بتحديد عرض الحقول بالسطر الواحد يساوي 3 حقول وأما اذا كنا نريد ان نعرض 4 حقول فلابد عليك تغيير الرقم 3 الى 4 ثم تغيير عرض الحقل الى 25% يعني طريقه حسابيه بالنسبة المئويه حيث ان النسبه كامله 100% وسيتم تقسيمها على العدد تبع عرض الحقول بالسطر الواحد .

ثم ستجد هناك اسم ملف جديد وهو :
<?
section
.php?id=$Row[id]
?>


وهذا الملف خاص بعرض الأقسام سنتكلم عنه لاحقا ان شاء الله ولو تلاحظ ان هنا متغير id يحمل القيمة $Row[id] وهي رقم القسم الخاص به بجدول قاعدة البيانات .

ثم اخذنا سطر جديد ثم كتبنا بعده المتغير $storys وهو خاص بعدد القصص بالقسم .

ثم ستلاحظ وجود المتغير $tr وهو خاص بالقفز سطر جديد لحقول الجدول الذي عملناه بالفرونت بيج كلما تعدى عدد الحقول بالسطر الواحد عن العدد الذي قمنا بتحديده سابقا وهو 3 .

ثم أقفلها دالة التكرار بالقوس المعكوف تبع الإغلاق :
<?
}
?>



ثم نكتب نهاية وسوم الجدول اللي عملناه بالفرونت بيج
<?
echo "</table>
</center>
</div>"
;
}
?>


ولاحظ وجود القوس } في نهايته وهو خاص بإغلاق الشرط .

==============================


ثم نكتب الكود التالي تحت مباشرة :

<?
include('footer.htm');
echo
"</body>
</html>"
;
?>



قمنا بتضمين ملف footer.htm وهو خاص بذيل الصفحة وبذلك يجب عليك انشاءه بنفس مجلد السكربت وبنفس المسمى .

ثم آخر شيء هو إغلاق وسوم الصفحة .


هذا وصلى الله وسلم على سيدنا محمد عليه افضل اصلاة والسلام .

وان شاء الله سيتم شرح ملف section.php الخاص بعرض عناوين القصص حسب القسم .

والله ولي التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 7 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (عرض عناوين القصص والأقسام الفرعية) --- الجزء السابع


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


تكلمنا في الجزء السادس عن كيفية عرض الأقسام وفي شرحنا هذا سنتكلم عن كيفية عرض الأقسام الفرعيه وعناوين القصص .


قم بإنشاء ملف جديد بمجلد السكربت بإسم section.php ضع به الكود التالي :
<?
include('config.php');

$id = intval($_GET["id"]);
$Sql2 = mysql_query("select id,name from story_cat where id=$id");
$Row2 = @mysql_fetch_array($Sql2);
if (!
$Row2)
{
ECHO
"<meta http-equiv='Refresh' content='1;URL=index.php'>";
exit;
}
?>


السطر الأول هو تضمين ملف الاتصال بقاعدة البيانات .
السطر التالي :
<?
$id
= intval($_GET["id"]);
?>


وهو لإستقبال المتغيرات من خلال الرابط الذي بالمتصفح عن طريقة المصفوفة $_GET وقمنا بتمرير المتغير على الداله intval وهي خاص بلفترة المتغير وجعله لا يقبل الا رقم فقط .

ثم قمنا بكتابة استعلام يفيد بعرض القسم حسب id=$id واذا لايوجد رقم هذا القسم وعنا له شرط بحيث اذا لم يوجد يتم تحويل المتصفح للصفحة الرئيسيه ثم يتم ايقاف الصفحة section.php .

ثم نكتب اسفل الكود السابق الكود التالي :
<?
echo "<html dir='rtl'>

<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
<link rel='stylesheet' href='style.css' type='text/css'>
<title>$Row2[name]</title>
</head>
<body leftmargin='0' topmargin='0'>"
;

include(
'header.htm');

echo
"<br>";
?>



الكود هو وسوم html خاصه بالهيدر ولاحظ ان عنوان title الصفحة سيكون $Row2[name] يعني إسم القسم .

ثم ثم قمنا بتضمين الملف header.htm تبع الهيدر .

كود PHP:
 <?
$Sql 
mysql_query("SELECT * FROM  story_cat where sub=$id order by order_cat"); 
$cats mysql_num_rows($Sql); 
 
if(
$cats == 0){ 
echo 
""
}else{ 
 
echo 
"<div align='center'> 
  <center> 
<table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber2'>"

 
$looptable '0'
while (
$Row = @mysql_fetch_array($Sql)) 

 
++
$looptable
if(
$looptable=="3"){ 
$tr "</tr><tr>"
$looptable="0"
}else{ 
$tr ""

 
$storys mysql_num_rows(mysql_query("select id from story where cat='$Row[id]'")); 
 
if (
$Row[image]){ 
$imageok "<img border='0' src='$Row[image]' alt='$Row[name]'><br>"
}else{ 
$imageok ""

 
echo 
"<td width='33%' bgcolor='#FCFEF0'> 
<p align='center'><a href='section.php?id=
$Row[id]'>".$imageok."$Row[name]</a><br>عدد القصص $storys</td> 
$tr"

 
echo 
"</table> 
  </center> 
</div> 
<br>"

}
?>

هذا الاستعلام مشابه تماما للاستعلام الخاص بالملف index.php تبع الاقسام الرئيسيه ولكن هذا الاستعلام خاص بجلب بيانات الاقسام الرئيسيه بحيث وضعنا شرط أنه سيتم جلب سجلات الجدول story_cat بشرط أن يكون الحقل sub=$id وأما بالاستعلام تبع الملف index.php كان sub=0 >>> هل لاحظت الفرق !!

ثم البقيه تم شرحها بالدرس السابق .

==============================


والآن نضع الكود التالي تحت مباشرة :
<?
$Sqlx
= mysql_query("SELECT id,name,cat,date,vis,count,vote FROM story where cat=$id order by order_story");
$allstorys = mysql_num_rows($Sqlx);

if(
$allstorys == 0){
echo
"";
}else{
?>



اولا قمنا بتحديد الحقول التي سيتم سحبها من الجدول تبع القصص وهي :
id,name,cat,date,vis,count,vote

ثم قمنا بعمل شرط للاستعلام بحيث نعرض جميع القصص بشرط cat=$id أي حقل cat تبع القصه يساوي حقل id تبع أقسام القصص . ثم قمنا بالترتيب حسب الحقل order_story .

وايضا استخدمنا دالة حساب عدد السجلات الجدول
<?
$allstorys
= mysql_num_rows($Sqlx);
?>


وقمنا بعمل شرط وهو اذا كان عدد القصص يساوي صفر فلن يعرض شيء واذا كان العدد اكثر من صفر فيتم عرض القصص جميعها حسب القسم الخاص بها .

ثم نكتب الكود التالي اسفل شيء :
<?
echo "<div align='center'>
<center>
<table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber3' dir='rtl'>
<tr>
<td width='58%' bgcolor='#FCFEF0'><p align='center'>إسم القصة</p></td>
<td width='14%' bgcolor='#FCFEF0'><p align='center'>تاريخ الإضافة</p></td>
<td width='14%' bgcolor='#FCFEF0'><p align='center'>التصويت</p></td>
<td width='14%' bgcolor='#FCFEF0'><p align='center'>الزيارات</p></td>
</tr>"
;
?>


وهو فتحنا جدول ذو 4 حقول عن طريق الفرونت بيج .

ثم انشأنا حلقة تكرار لنجلب جميع القصص التي بالقسم :

كود PHP:
 <?
while ($Rowx = @mysql_fetch_array($Sqlx)) 

$Rowx[name] = stripslashes($Rowx[name]); 
echo 
"<tr> 
      <td width='58%'><img src='images/start.gif' alt='
$Rowx[name]' border=0> <a href='show.php?id=$Rowx[id]'>$Rowx[name]</a></td> 
      <td width='14%'><p align='center'>
$Rowx[date]</p></td> 
      <td width='14%'><p align='center'>
$Rowx[vote]/$Rowx[count]</p></td> 
      <td width='14%'><p align='center'>
$Rowx[vis]</p></td> 
    </tr>"

}
?>

ستلاحظ وجود اسم ملف جديد وهو :
<?
show
.php?id=$Rowx[id]
?>


خاص بعرض موضوع القصه سيتم شرحه لاحقا ان شاء الله .

لاحظ ان جميع ما بداخل اقواس حلقة التكرار سيتم تكراره على حسب عدد القصص الموجوده به .


ثم نغلق وسوم الجدول ثم نغلق الشرط :
<?
echo "</table>
</center>
</div>"
;
}
?>



ثم نقوم بتضمين ملف footer.htm ونغلق بعد وسوم الصفحه كما فعنا بالشرح السابق :
<?
include('footer.htm');
echo
"</body>
</html>"
;
?>



إنتهينا من شرح الملف section.php ولله الحمد .

وسيتم شرح الملف الخاص برؤية القصة وموضوعها ان شاء الله .

والله ولي التوفيق

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
كُتبَ بتاريخ : [ 02-21-2011 ]
 
 رقم المشاركة : ( 8 )
رقم العضوية : 1
تاريخ التسجيل : Jan 2010
مكان الإقامة : في قلوب الناس
عدد المشاركات : 8,917
عدد النقاط : 363

عابر الفيافي غير متواجد حالياً



كيف تعمل سكربت (عرض القصه ) --- الجزء الثامن والأخير


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


من فضل الله تعالى أن أتم نعمته علي ويسّر لي الشروحات من بدايتها وحتى نهايتها بهذا الموضوع .


وهذا الشرح خاص بملف عرض القصة .



أنشيء ملف جديد بإسم show.php بداخل مجلد السكربت ثم ضع به الأكواد التاليه :\\

كود PHP:
 <?
include('config.php'); 
 
$id intval($_GET["id"]); 
$Sql mysql_query("select * from story where id=$id"); 
$Row = @mysql_fetch_array($Sql); 
if (!
$Row

ECHO 
"<meta http-equiv='Refresh' content='1;URL=index.php'>"
exit; 
}
?>


السطر الأول خاص بتضمين ملف الاتصال بقاعدة البيانات .
السطر التالي جلب قمية المتغير وهي تحمل رقم id القصة وتم تمرير المتغير على الدالة intval للأمان .

ثم استعلمنا عن القصة بشرط ان id=$id واذا لايوجد هذا الرقم بقاعدة البيانات فسيتم توجيه المتصفح الى الصفحة الرئيسيه واذا الرقم موجود سيتم عرض باقي الاستعلامات بالملف وعرض القصة .

ثم نضع الكود التالي :
<?
$sql2
= mysql_query ("update story set vis=vis+1 where id=$id");
?>


وهالاستعلام خاص بزيارات القصة بحيث يزداد الحقل vis كلما زار الصفحة شخص ما عدد واحد ثم اتبعناه شرط وهو بشرط ان تكون القصة id=$id .

ثم نضع الكود التالي :

<?
echo "<html dir='rtl'>

<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
<link rel='stylesheet' href='style.css' type='text/css'>
<title>$Row[name]</title>
</head>
<body leftmargin='0' topmargin='0'>"
;

include(
'header.htm');

echo
"<br>";
?>



وقد تم شرحه سابقا وهو كود الهيدر واسم الصفحه ثم تضيمن ملف header.htm ثم سطر جديد وستلاحظ ان عنوان الصفحة يحمل اسم القصة وهو $Row[name] .

ثم نكتب هذه الأكواد :

كود PHP:
 <?
$Row
[name] = stripslashes($Row[name]); 
$Row[name] = htmlspecialchars($Row[name]); 
$Row[text] = stripslashes($Row[text]); 
$Row[text] = htmlspecialchars($Row[text]); 
$Row[text] = nl2br($Row[text]);
?>

وهي عنوان القصة ومحتوى القصة .

واستخدمنا الدالة stripslashes لإزالة علامات / من النص .
واستخدمنا الدالة htmlspecialchars لعدم تفعيل أكواد html .
ثم استخدمنا الدالة nl2br لإضافة سطر جديد لموضوع القصة .


ثم ننشيء جدول بالفرونت بيج كالتالي :
<?
echo "<div align='center'>
<center>
<table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber4' dir='rtl'>
<tr>
<td width='100%' bgcolor='#FCFEF0'><p align='center'>$Row[name]</p></td>
</tr>
<tr>
<td width='100%'>$Row[text]</td>
</tr>
</table>
</center>
</div>"
;
?>



ووضعنا بداخلة المتغير $Row[name] لعنوان القصة والمتغير $Row[text] لموضوع القصة .

ثم نضع الكود التالي :

كود PHP:
 <?
echo "<br>"
 
echo 
"<div align='center'> 
  <center> 
  <table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber6' dir='rtl'> 
    <tr> 
      <td width='33%' align='center' bgcolor='#FCFEF0'>إسم الكاتب</td> 
      <td width='33%' align='center' bgcolor='#FCFEF0'>تاريخ الإضافة</td> 
      <td width='34%' align='center' bgcolor='#FCFEF0'>زيارات القصة</td> 
    </tr> 
    <tr> 
      <td width='33%' align='center'>
$Row[writer]</td> 
      <td width='33%' align='center'>
$Row[date]</td> 
      <td width='34%' align='center'>
$Row[vis]</td> 
    </tr> 
  </table> 
  </center> 
</div>"
;
?>

وهو كما واضع لك جدول به 3 خانات لعرض كاتب القصة وتاريخ الإضافة وزياراة القصة .

ثم أخيرا نقل وسوم الصفحة وقبلها نضمن ملف الفوتر :
<?
include('footer.htm');
echo
"</body>
</html>"
;
?>



هكذا وقد إنتهينا ولله الحمد.

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

ومن يستوعب الشرح ويركز به ويبدأ به تدريجيا من أوله إلى آخر فسوف ينشي سكربتاته بنفسه بإذن الله تعالى .







هذا وصلى الله وسلم على سيدنا محمد وعلى آله وصحبه ومن اتبع هداه

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

توقيع :



لا يـورث الـعلم مـن الأعمام **** ولا يـرى بالليـل فـي الـمنـام
لـكــنـه يحصـــل بالتـــكـــرار **** والـدرس بالليـــل وبـالـنـهار
مـثاله كشجرة فـــي النــفس **** وسقيه بالدرس بعد الـغرس

رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع

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

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

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

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
هل تعلم ؟؟؟مفيد جدا أتمنى الجميع يقرأ الفراشة الذهبية نور الحوار العام 4 11-26-2011 03:41 PM
تعلم جمل رائعة بالانجليزي الامير المجهول نور واحة اللغة الانجليزية (English Forum) 6 04-17-2011 01:47 PM
معلومات عامة الامير المجهول نور الحوار العام 10 12-09-2010 10:35 AM
خمسون معلومة عن الرسول صلى الله عليه وسلم الامير المجهول الـنور الإسلامي العــام 1 10-28-2010 08:37 PM
هل تعلم؟؟؟!!! جنون نور الثقافة والمعرفة 0 09-23-2010 08:15 PM


الساعة الآن 10:37 AM.