[ Updated threads · رسائل جديدة · المشاركين · قواعد المنتدى · بحث · RSS ]

  • صفحة 1 من%
  • 1
كيف تعمل سكربت How do you work
gulfmissile التاريخ : الجمعة, 2023-03-10, 11:21 PM | رسالة # 1

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

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

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

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

إذا كان جوبك (( نعم )) فأهلا بك وسهلا ولنتعلم سويا طريقة برمجة سكربت بإستخدام لغة برمجة المواقع 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
يعني عرض السجلات من القاعده ومن ثم تحديث عدادات الزوار اذا وجدت .

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

 

gulfmissile التاريخ : الجمعة, 2023-03-10, 11:22 PM | رسالة # 2

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

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

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

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

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

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

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

1,bmw,2007,15.000kd

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

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

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

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

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

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

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

اقتباس
CREATE TABLE `story_cat` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(99) NOT NULL default '',
`image` varchar(99) NOT NULL default '',
`sub` int(10) NOT NULL default '0',
`order_cat` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

CREATE TABLE `story` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`text` longtext NOT NULL,
`cat` int(11) NOT NULL default '0',
`writer` varchar(255) NOT NULL default '',
`vis` int(11) default '0',
`vote` int(11) NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`date` varchar(255) NOT NULL default '0',
`order_story` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;


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

وايضا مرفق نفس الاستعلام بملف نصي .

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

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

gulfmissile التاريخ : الجمعة, 2023-03-10, 11:28 PM | رسالة # 3

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

كيفية إضافة النصوص الى قواعد البيانات .

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

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

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

اقتباس
CREATE TABLE `story_cat` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(99) NOT NULL default '',
`image` varchar(99) NOT NULL default '',
`sub` int(10) NOT NULL default '0',
`order_cat` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;

CREATE TABLE `story` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`text` longtext NOT NULL,
`cat` int(11) NOT NULL default '0',
`writer` varchar(255) NOT NULL default '',
`vis` int(11) default '0',
`vote` int(11) NOT NULL default '0',
`count` int(11) NOT NULL default '0',
`date` varchar(255) NOT NULL default '0',
`order_story` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;


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

>>>>>> هيا فلــنعمل ملف إتصال بقاعدة البيانات :
بمجلد story انشيء ملف php بإسم config.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 وهو خاص بإضافة الأقسام لقاعدة البيانات :
قم بعمل نموذج إدخال بيانات يحتوي حقول جدول الأقسام الذي بالقاعدة !!

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

اقتباس
<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'>";
?>


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

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

gulfmissile التاريخ : الجمعة, 2023-03-10, 11:32 PM | رسالة # 4

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

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

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

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

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

======

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

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

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

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

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

اقتباس
<?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 .
ثم كتبنا كود التكرار لجميع النتائج بالقاعدة :

اقتباس
<?
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
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 وهو خاص بإستقبال البيانات للقسم وقت تحديثها .
ضع به الكود التالي :

اقتباس
<?
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 وهو كما بالكود السابق :

اقتباس
<?
$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 وقم بوضع الاكواد التاليه بداخله :

اقتباس
<?
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 في بعض الملفات ... للعلم فقط .

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

gulfmissile التاريخ : الجمعة, 2023-03-10, 11:37 PM | رسالة # 5

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

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

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

الآن بمجلد السكربت أنشيء ملف جديد بإسم index.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 الخاص بعرض عناوين القصص حسب القسم .

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

gulfmissile التاريخ : الجمعة, 2023-03-10, 11:45 PM | رسالة # 6

كافي عذاب

العضويه : المسؤولين

عدد المشاركات : 242

سمعة : 0

حالة : Offline

الجنس : ذكر

دولتك : الكويت

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

قم بإنشاء ملف جديد بمجلد السكربت بإسم 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 تبع الهيدر .

اقتباس
<?
$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 حقول عن طريق الفرونت بيج .

ثم انشأنا حلقة تكرار لنجلب جميع القصص التي بالقسم :
اقتباس
<?
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 ولله الحمد .

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

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


الدرس الاخير الثامن

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

قم بإنشاء ملف جديد بمجلد السكربت بإسم 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 تبع الهيدر .

<?
$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 حقول عن طريق الفرونت بيج .

ثم انشأنا حلقة تكرار لنجلب جميع القصص التي بالقسم :
اقتباس
<?
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 ولله الحمد .

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

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

  • صفحة 1 من%
  • 1
بحث: