القرأن الكريمتفسير القرأن الكريم
الاعشاب الطبيةالارشفة

لماذا لم يتم تفعيل موقعي ؟؟ الجواب اضغط هنا

 

قريباً جداً - سكربت القران الكريم الإصدار الثالث مجاناً - اضغط هنا

 

بسم الله الرحمن الرحيم

( ولا تحسبن الله غافلا عما يعمل الظالمون إنما يؤخرهم ليوم تشخص فيه الأبصار ( 42 ) مهطعين مقنعي رءوسهم لا يرتد إليهم طرفهم وأفئدتهم هواء ( 43 ) وأنذر الناس يوم يأتيهم العذاب )

قَالَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْه والهِ وَسَلَّمَ

لا تقوم الساعة حتى يظهر الفحش وقطيعة الرحم وسوء الجوار ويخون الأمين . قيل يا رسول الله فكيف المؤمن يومئذ . قال : كالنخلة وقعت فلم تكسر , وأكلت فلم تفسد ,  ووضعت طِيبًا , وكقطعة الذهب أدخلت النار , فأخرجت فلم تزدد إلا جودة  -  وكذلك كما قال  -  سيأتي على الناس سنوات خداعات ، يصدق فيها الكاذب ، و يكذب فيها الصادق ، و يؤتمن فيها الخائن ، و يخون الأمين ، و ينطق فيها الرويبضة . قيل : و ما الرويبضة ؟ قال : الرجل التافه يتكلم في أمر العامة

سكربتات مجانية

  سكربت القران الكريم الاصدار الثالث - قريباً ان شاء الله    سكربت القران الكريم الاصدار الاول    سكربت القران الكريم الاصدار الثاني    سكربت تفسير الاحلام    سكربت ارشفة وتوليد الخرائط للمواقع    سكربت الحج والعمرة 

 

برامج مهمة

  برنامج Yahoo ماسنجر     برنامج Windows-live msn     برنامج Zip     برنامج Rar     برنامج Acdsee     برنامج Flash player     برنامج Adobe Reader     برنامج Java     متصفح Fire fox     متصفح Opera     متصفح Safari     متصفح Google chrome     متصفح Internet Explorer 8  


سلسة تعليم واحتراف لغة php في بناء المواقع بكل سهولة الجزء الثاني مبتداء
إستخدام الـ Cookies


مقدمة
تعد الكعكات ( الـ cookies ) من الوسائل المفيدة في انشاء مواقع اكثر تفاعلية ، فبواسطتها ستتمكن من معرفة هل قام المتصفح بزيارة موقعك من قبل ام لا ..

في هذا الدرس سنتعرف على الكعكات و كيف يمكننا استخدامها ...

اقسام الدرس :
1- معلومات عامة .
2- زراعة الكعكات على جهاز العميل .
3- قراءة الكعكات من جهاز العميل .
4- تطبيق : تخصيص لون الخلفية .

المصادر :
http://www.geocities.com/paledu5/issues.htm
http://totalquality.dubaipolice.gov....nternash36.htm
http://urnotalone.8m.com/cookies.htm
http://www.hotuae.com/et/cookies.html
http://www.freewebs.com/paz1/cookies.htm
http://www.planet-source-code.com/vb...d=357&lngWId=8
http://www.devshed.com/Server_Side/PHP/Cookies
http://www.free2code.net/tutorials/php/cookie2


معلومات عامة

- ما هي ملفات الكوكيز ؟
ملفات الكوكيز عبارة عن ملفات نصية ، تقوم المواقع التي تزورها بإيداعها على القرص الصلب في جهازك ، وتحتوي هذه الملفات النصية على معلومات تتيح للموقع الذي أودعها أن يسترجعها عند الحاجة ، أي عند زيارتك المقبلة للموقع .

وتختلف المعلومات التي تخزن ضمن ملفات الكوكيز من موقع لآخر ، ولكن ليس بإمكان هذه المواقع استرجاع أي معلومات إضافية عنك أو عن جهازك ، باستثناء تلك المعلومات المخزنة في الملف النصي الخاص بها ، والتي تم إرسالها من قبل الموقع ، وبذلك لا تستطيع هذه المواقع الاطلاع على مضمون ملفات الكوكيز الأخرى ، أو أي ملفات خاصة على جهازك .

- كيف يتم إيداع ملفات الكوكيز على جهازك ؟
يرسل المتصفح ، عند إدخالك عنوان موقع في شريط العناوين ، طلباً إلى الموقع الذي حددته ، متضمناً عنوان IP الخاص به ، ونوع المتصفح الذي تستخدمه ، ونظام التشغيل الذي يدير جهازك . تخزّن هذه المعلومات في ملفات خاصة بالمزود Log Files ، ولا علاقة للكوكيز بالمعلومات التي يتم إرسالها . وفي الوقت ذاته يبحث المتصفح عن ملفات كوكيز ، التي تخص الموقع المطلوب ، فإذا وجدها يتم إرسالها مع طلب مشاهدة الموقع ، وإذا لم توجد ، فإن الموقع سيدرك أن هذه زيارتك الأولى إليه ، فيقوم بإرسال ملفات الكوكيز إلى جهازك لتخزن عليه .

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

بقلم    ---- معيلق

- مكونات ملف الكوكيز :
يتكون عادة من عدة اجزاء هي اسم الملف ، قيمته ، تاريخ انتهاء مفعوله ، الموقع المالك له ...


زراعة الكعكات على جهاز العميل

أولا : كيف تزرع ملفات الكعكات :
يتم ذلك باستخدام الدالة setcookie و تعريفها بالشكل التالي :
Code ..


boolean setcookie ( string name [, string value [, int expire
[, string path [, string domain [, int secure]]]]])






تهمنا المدخلات الثلاث الاولى و هي :
name : اي اسم الكعكة ... فبامكانك ارسال اكثر من كعكة الى متصفح واحد و عندها يصبح الاسم هو الطريقة الوحيدة للتمييز .

value : القيمة ... فقط قيم نصية ... لا يمكنك وضع مصفوفة كقيمة و هذا أامر مهم ... لكن انتبه بامكانك وضع مصفوفة لكن بطريقة اخرى ... ؟ كيف ؟ : استخدم الدالة serialize لتحويل اي متغير في بي اتش بي الى شكل نصي و من ثم استخدم unserialize لاعادته الى الشكل الطبيعي .

expire : اي عدد الثواني من بدية عصر اليونكس ( 1 يناير 1970 ) و التي بعدها سيقوم المتصفح على جهاز المستخدم بحذف الكعكة ... و هنا ثلاث حالات :
--> أولاً : أن يكون الوقت المعطى كمدخل اكثر من الوقت الحالي على جهاز العميل و عندها تخزن الكعكة على جهاز العميل و تحذف عند انقضاء المدة .
--> ثانياً : أن يكون الوقت المعطى كمدخل اقل من الوقت على جهاز العميل و عندها لا يقوم المتصفح على جهاز العميل بتخزينها و اذا وجدت كعكة بنفس الاسم فانه يحذفها حتى لو لم تنتهي المدة .
--> ثالثاً : إذا لم تحدد وقتا فان الكعكة تخزن في ذاكرة المتصفح و تفقد حالما يغلق المستخدم الموقع .

مثال :
Code ..


<?
setcookie('site','http://www.albrhan.com/',time()+3600);
?>





من الدوال المفيدة دالة time و التي ترجع الوقت الحالي على شكل عدد الثواني من بداية عصر اليونكس (1 يناير 1970) .

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

مثال :
Code ..


<?
setcookie('site','',time()-360000);
?>






ملاحظات :
1- عندما تحدد زمنا ماضياً اجعله قيمة كبيرة لكي تتفادى فارق التوقيت بين الخادم و العميل .
2- لكي تعدل أي كعكة عليك حذفها و إرسالها من جديد .

ملاحظة مهمة :
يجب ان تستدعي الدالة setcookie قبل أن ترسل اي شيء الى المتصفح .. فمثلا الكود التالي لن ينجح :
Code ..


<html>
<body>
<?
setcookie('site','islamway.net',time()+20000);
echo " Alfjr.com : the best islamic forum";
?>
</body>
</html>





بل لو كان هنالك مجرد سطر فارغ قبل علامة البداية ?> فلن تعمل الدالة setcookie ...

المثال السابق كان من الممكن ان يكون :
Code ..


<? setcookie('site','islamway.net',time()+20000);
?>
<html>
<body>
<? echo " Alfjr.com : the best islamic forum"; ?>
</body>
</html>



قراءة الكعكات من جهاز العميل

- كيف تستقبل المتغيرات من الكعكة :
كما قلنا بانه بامكانك ارسال اكثر من كعكة الى متصفح واحد ..
عندما يطلب المستخدم من متصفحهِ صفحة على موقعك فان المتصفح يقوم بارسال جميع الكعكات التي قمت انت بزراعتها عند المستخدم ... PHP تسهل عليك قراءة هذه الكعكات و تخزنها في مصفوفة اسمها COOKIE_$ و هي مصفوفة من النوع Associative Arrays بحيث ان المفتاح هو اسم الكعكة و القيمة قيمة الكعكة كما ارسلتها .

مثال :
Code ..


<?
echo $_COOKIE['site'];
?>






و هذه تطبع :
Code ..


islamway.net



تطبيق : تخصيص لون الخلفية

كمثال بسيط دعنا نقوم بانشاء موقع مبسط و نستخدم الكعكات لكي نحفظ لون الخلفية المحببة الى الشخص ..

- ماذا لدينا ؟
1- الملف user.php : يقوم الملف بعمليتين :
--> الاولى : تحديد اللون الذي اختاره الزائر .
--> الثانية : عرض نموذج اختيار الللون و حفظ اللون المختار

2- الملف index.php إحدى صفحات الموقع و التي تستفيد من خدمات الملف user.php .

وإليك الكود الخاص بكل ملف :
1- الملف user.php :
Code ..


<?
/*-----------------------
Cookies-Based Background Selector..
Created By : "abomuhammed"<abomuhammed@islamway.net>
For : PHPvillage.com
-------------------------*/

function display_form(){
?>
<html>
<body>
<!-- Color setting Form -->
<form name=color_select method="GET">
<INPUT type="hidden" name="do" value="set_color">
<INPUT name="color" type="text" value="
<? echo get_color(); ?>">
<INPUT type="submit" value="احفظ اللون">
</FORM>
<!-- Color Clearing Form -->
<form name=color_clear method="GET">
<INPUT type="hidden" name="do" value="clear_color">
<INPUT type="submit" value="لا تتذكر لوني المفضل">
</FORM>
<?

}

function set_color(){
global $_GET;
setcookie('color',$_GET['color'],time()+36000);
header('Location:index.php');

}

function get_color(){
global $_COOKIE;
if(isset($_COOKIE['color'])){
return $_COOKIE['color'];
}else{
return "#FFFFFF";
}
}

function clear_color(){
setcookie('color',$_GET['color'],time()-36000);
header('Location:index.php');
}

// selection

if ($do=='display_form'){
display_form();
}elseif ($do=="set_color"){
set_color();
}elseif ($do=="clear_color"){
clear_color();
}
?>






- الدالة الاولى display_form تقوم فقط بعرض نموذج اختيار اللون .
- الدالة الثانية set_color تقوم بحفظ اللون المختار في كعكة و ترجع المستخدم الى الصفحة الرئيسية .
- الدالة الثالثة get_color ترجع قيمة اللون من الكعكة و اذا لم يكن هنالك قيمة فانها ترجع لون افتراضي وهو الابيض .
- الدالة الرابعة clear_color تقوم بمسح الكعكة بالطريقة التي ذكرناها في الدرس .

2- ملف الـ index.php :
ملف عادي جداً الا انه يطلب الدالة get_color من ملف user.php كما يلي :
Code ..


<html>
<BODY bgcolor="<? include('user.php');
echo get_color() ?>">
<h1>مرحبا بك .....</h1>
<br>
يمكنك تخصيص لون الخلفية من هنا
<br>

<a href="user.php?do=display_form"> صفحة تخصيص اللون</a>
</body>
</html>
نـقل قواعد البيـانات


في البداية قم بفتح قاعدة البيانات التي تريد نقلها من نفس الموقع عن طريق لوحة التحكم الخاصة بموقعك وبالتحديد من الـ phpmyadmin ، ستشـاهد صفحة مقسمة الى قسمين الأولى على اليمين والثانية على اليسار فيها اسم قاعدة البيانات قم بالضغط عليه ، ستشـاهد في يمين الصفحة قائمة بالجدوال الموجودة في قاعدة البيـانات التي قمت باختيـارها ..

في مثالنا هنا سنقوم بشرح طريقة نقل قاعدة بيـانات منتدى الـ VB الشهير ، لذلك ستجد مجموعة كبيرة من الجدوال تقريباً 49 جدولاً ، ولإن القاعدة ستكون كبيرة نسبياً سنقوم بتخفيف بعض البيـانات منها فسنقوم بالتـالي :

تفريغ الجداول التـالية ( عن طريق فتح الجدول واختيـار Empty ) ..
1- adminlog
2- search
3- searchindex
4- word

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

بعد تفريغ الجدوال قم بالرجوع الى الصفحة التي يتم استعراض جميع الجداول فيها ، وستجد أسفل الصفحة العنوان التـالي View dump (schema) of database وبجانبه الخيـارات التـالية
1- Structure only
2- Structure and data
3- Data only

قم باختيار الخيار الثاني Structure and data .

بعد ذلك ستجد أسفل المربع الأبيض الذي يحتوي على اسماء الجداول الخيـارات التـالية :
1- Add 'drop table'
2- Complete inserts
3- Extended inserts
4- Use backquotes with tables and fields' names
5- Save as file

قم بوضع الاختيـار على الخيـار الأخير وهو حفظ بيانات قاعدة البيانات في ملف خارجي Save as file . في النهاية إضغط على Go وأختر الإسم المناسب الذي تراه وانتظر تحميل كامل الملف ..

الآن إذهب الى الموقع الجديد الذي تريد ان تنقل قاعدة البيانات اليه ، على سبيل المثـال http://www.123.com ، ستقوم بالتأكيد بعملية تركيب جديدة للمنتدى عن طريق الـ install ، ما يهمنا هنا هو طريقة استرجاع قاعدة البيانات التي قمنا بحفظها في ملف sql الى الموقع الجديد ، كل ما عليك فعله هو فتح الـ phpmyadmin في الموقع الذي تريد أن تنقل القـاعدة اليه ، وتقوم بما يلي :

إذهب الى قاعدة البيانات التي تم انشـاءها بعملية الـ install وستجد أن أغلب الجدوال فارغة ، قم بتحديد كافة الجداول وأختر delete او drop لكن تأكد أنك في قاعدة البيـانات الصحيحة التي تريدها ، بعد عملية الحذف ستجد في الأسفل مربع فارغ وتحته زر Browse ، قم بالضغط عليه واختر الملف الذي قم بحفظه سـابقاً ، وسيتم تحميل البيـانات الى قاعدة البيـانات الجديدة ..

نقطة أخيرة ستسهل عليك نقل قاعدة البيـانات وهي تقسم الملف إن كان كبيراً ، والطريقة ببسـاطة عن طريق فتح الملف واقتطاع إجزاء منه حسب الحاجة التي تراها ووضع الأقسـام في ملفات ذات امتداد sql ، مثلا 1.sql و 2.sql الخ .. لكن تأكد من أن كل ملف يبدأ بالجملة insert into ، وأن حجمه ليس كبيراً ، 50kb ستكون مناسبة .
لماذا لغة PHP ?


قد يتساءل احدكم لماذا أتعلم لغة برمجة الوب PHP ؟ والجواب على ذلك بسيط فلو كنت صاحب موقع فبكل تأكيد تواجهك مشكلة تحديث المحتويات بشكل دائم . اذ أن صفحات الـ HTML العادية لاتتيح لك فرصة لتحديث المحتويات دون ان تقوم بالعمل الروتيني المعروف ، تصمم الصفحات المطلوبة ثم تقوم ببعض التعديلات على الصفحات الرئيسية لموقع ثم تقوم بعمل upload لكل هذه الصفحات وترفع يديك داعيا وراجيا ألا تكون هناك أية أخطاء تجبرك على إعادة العملية المتعبة مرة أخرى . أما مع لغات برمجة الوب وخصوصاً بي إتش بي ستجد الراحة من كل هذا العناء بجعل الموقع يعمل بشكل تلقائي وماعليك إلا أن تجتهد في إضافة المحتويات الجديدة فقط .

البعض يقول هذه العملية سهلة وسريعة خصوصاً مع البرامج الحديثة ، وربما موقعي صغير ولايحتاج إلى كل هذا التعب . فماذا أستفيد أيضا ؟

نقول : تستفيد منها في اضافة بعض البرامج التفاعلية الضرورية لموقعك . ألا ترغب في أن تتعرف على رأي زوارك في موقعك وأن تحصل على مقترحات عملية منهم ؟ الحل أن تضيف سجل زوار يتيح لزوارك كتابة آرائهم ومقترحاتهم ، وبي إتش بي تتيح لك ذلك .

هذا مثال بسيط ، وكذلك تستطيع الاستفادة منها في اضافة برامج كثيرة مثل :
1- عداد زوار لمعرفة عدد زوار موقعك . والعدادات المتقدمة منها تعطيك تفاصيل إحصائية مفيدة .
2- منتدى . والمنتديات معروفة لدى الجميع تقريبا ، وفوائدها معروفة ، فهي التي تزيد من زوار موقعك ، وتفيد زوار موقعك في الاجتماع في مكان واحد وتبادل الخبرات والفوائد .
3- برنامج لمشاركة الزوار ، بحيث يضع الزائر مقالته أو مشاركته في موقعك بدون تدخل منك وبذلك تجد المحتويات الجديدة على موقعك دائما .
4- برنامج للبطاقات وهذا معروف ..

بالإضـافة الى أنواع لاحصر لها من البرامج ..

الآن دعونا نشرح قليلا ماهي لغة بي إتش بي ، هناك لغات كثيرة تشابه هذه اللغة منها لغة Perl أو ASP ، وهي لغات تعمل من جهة المستضيف أو ما يسمى بالـ ServerSide language ، أي أنها تعمل من قبل المستضيف الذي تعمل عليه وتقوم بإخراج النتائج على شكل HTML يفهمها المتصفح ، وهي بذلك لا تثقل حاسوب زائر الموقع بأية أعباء . وكذلك توفر مرونة عالية في البرمجة لا تتوفر في لغات HTML و Java script والتي تعمل على حاسوب زائر الموقع .

بدأت لغة البي إتش بي بفكرة أحد الهواة Ramsus Ledrof الذي فكر في كيفية تضمين شفرات ال HTML شفرات أكثر تعقيدا ، إلى أن بدأت هذه اللغة بالنمو وأصبحت أغلب المواقع لاتخلو من برنامج واحد على الأقل مصمم بالـ PHP .

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

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

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

لماذا وما الدافع في اختيار تعلم لغة بي إتش بي مع وجود الكثير من اللغات المنتشرة مثل Perl و CGI وJava script و Cold Fusion و ASP . الأمرفي غاية البساطة . لغة PHP لغة سهلة ، قوية ، متماسكة وتستطيع عمل كل شيء نريده .

هل تعلم لغة بي إتش بي صعبة ؟ أكيد ليست بصعوبة لغة البيرل ، ونستطيع القول أن من يملك أساسيات لغة الـ C يستطيع بكل سهولة استيعاب عمل أوامر لغة PHP لأنها اعتمدت على طريقة الأوامر في لغة السي ، وأما الأشخاص الذين لم يحالفهم الحظ في تعلم لغات البرمجة فلا تقلقوا فالأمر ليس صعبا في تعلم اللغة وفقط تحتاج للمواصلة وفهم الأوامر .

وهدفنا هو تعليمكم أساسيات اللغة لاستخدامها في صفحاتكم ، ولانحتاج منك إلا معرفة القليل من لغة HTML ..
العوامل:


العوامل
- العمليات الرياضية :
هي نفسها العمليات التي درستها في المرحلة الابتدائية من ( جمع + ، طرح - ، ضرب * ، قسمة / ) والزائد عليهم التي لم تدرسه تقريبا هو باقي القسمة ( % ) ..

مثال شامل على كل العمليات في الـ PHP :

Code ..


<?
$a = 6;
$b=2;
$c= $a +$b;
// سوف نحصل على ناتج الجمع 8

$c= $a -$b;
// سوف نحصل على ناتج الطرح 4

$c= $a * $b;
// سوف نحصل على ناتج الضرب 12

$c= $a /$b;
// سوف نحصل على ناتج القسمة 3

$a = 7;
$b=2;
$c= $a % $b;
// سوف نحصل على باقي القسمة 1
?>



عمليات Assignment

- عمليات Assignment :

=
احفظ القيمة في المتغير ، بمعنى خزن القيمة 3 في المتغير a$ :
Code ..


<?
$a = 3;
print $a;
// يطبع 3
?>






=+
إضافة قيمة إلى قيمة في نفس المتغير :
Code ..


<?
$a = 3;
$a += 3;
print $a;
// يطبع 6
?>






=-
اطرح المقدار واحد من المقدار ثلاثة في المتغير $a
Code ..


<?
$a = 3;
$a -= 1;
print $a;
// يطبع 2
?>






=*
يضرب القيمة 3 بالقيمة 2 ويكون الناتج مخزن في نفس المتغير :
Code ..


<?
$a = 3;
$a *= 2;
print $a;
// يطبع الناتج 6
?>






=/
يقسم قيمة على قيمه أخرى :
Code ..


<?
$a = 6;
$a /= 2;
print $a;
// يطبع ناتج القسمة 3
?>






=.
دمج سلسلة حرفية :
Code ..


<?
$a = "This is ";
$a .= "a test.";
print $a;
// : يطبع الجملة التالية
// This is a test.
?>



- عوامل الإضافة و الطرح

- عوامل الإضافة و الطرح :
لو افترضنا أننا لدينا المتغير $a=3 و أردنا إضافة واحد إليه بحيث يصبح 4 أو طرح واحد منه بحيث يصبح 2 ، لدينا العوامل التالية :

$a++ ارجع قيمة a ثم اضف واحد إليها
++$a اضف واحد إليها ثم ارجع القيمة
$a-- ارجع القيمة ثم اطرح واحد منها
--$a اطرح واحد ثم ارجع القيمة

++value ..
يتم إضافة واحد إلى الرقم خمسة :
Code ..


<?
$a = 5;
print ++$a;
// يطبع القيمة 6
?>






value++ ..
يرجع القيمة نفسها وفي استخدام ثاني تزيد القيمة واحد :
Code ..


<?
$a = 5;
print $a++;
// طباعة الرقم 6
print "<br>";
print $a;
// طباعة الرقم 5
?>






--value ..
يطرح من القيمة واحد :
Code ..


<?
$a = 5;
print --$a;
// يطبع الرقم 4
?>






value-- ..
يرجع القيمة نفسها وفي استخدام ثاني يطرح منها واحد :
Code ..


<?
$a = 5;
print $a--;
// يطبع الرقم 4
print "<br>";
print $a;
// يطبع الرقم 5
?>



عمليات المقارنة 1

- عمليات المقارنة Comparasion Operators :

$a == $b المتغيران متساويان ..
$a ===$b المتغيران متساويان و من نفس النوع ..
$a !=$b المتغير الاول لا يساوي الثاني ..
$a !==$b المتغير الاول لا يساوي الثاني وليس من نفس النوع ..
$a > $b أكبر من ..
$a < $b أصغر من ..
$a >=$b أكبر من او يساوي ..
$a <=$b أصغر من او يساوي ..

== (تساوي) ..
تساوي القيمة المخزنة في المتغير الأول بالقيمة المخزنة في المتغير الثاني :
Code ..


<?
$x = 7;
$y = "7";
if ($x == $y) print $x . " تساوي " . $y;
// يطبع 7 تساوي 7
?>






=== ( تساوي ومن نفس النوع ) ..
تساوي القيمة المخزنة في المتغير الأول بالقيمة المخزنة في المتغير الثاني وتكون القيم من نفس النوع ( حرفية – عددية ) :
Code ..


<?
$x = 7;
$y = 7;
if ($x === $y) print $x . " is identical to " . $y;
// يطبع 7 is identical to 7
?>






!= ( لا تساوي ) ..
إذا كانت القيم المخزنة في المتغيرين غير متساويين :
Code ..


<?
$x = 8;
$y = 4;
if ($x != $y) print $x . " لا تساوي " . $y;
// يطبع 8 لا تساوي 4
?>






!== ( لا تساوي ولا من نفس النوع ) ..
إذا كانت القيم المخزنة في المتغيرين غير متساويين وليست من نفس النوع :
Code ..


<?
$x = 8;
$y = 9;
if ($x !== $y) print $x . " iليست من نفس نوع " . $y;
// يطبع 8 ليست من نفس نوع 9
?>



عمليات المقارنة 2

< ( أقل من ) ..
مقارنة بين قيمتين واحدة أقل من الاخرى :
Code ..


<?
$x = 5;
$y = 9;
if ($x < $y) print $x . " أقل من " . $y;
// يطبع 5 أقل من 9
?>






> ( أكبر من ) ..
مقارنة بين قيمتين واحدة أكبر من الاخرى :
Code ..


<?
$x = 9 ;
$y = 5;
if ($x > $y) print $x . " اكبر من " . $y;
// يطبع 9 أكبر من 5
?>






<= ( أقل من ويساوي ) ..
مقارنة بين قيمتين واحدة أقل من الاخرى أو مساوية لها :
Code ..


<?
$x = 5;
$y = 5;
if ($x <= $y) print $x;
// يطبع القيمة 5
?>






>= ( أكبر من ويساوي ) ..
مقارنة بين قيمتين واحدة أكبر من الاخرى و مساوية لها :
Code ..


<?
$x = 7;
$y = 5;
if ($x >= $y) print $x;
// يطبع القيمة 7
?>



العمليات المنطقية

العمليات المنطقية Logical Operations :
لكي تكون قيمة الشرط صحيحة فيجب أن تنطبق القواعد التالية الخاصة بكل عامل منطقي على حدة ، والعوامل هي :
( and ) يجب تحقق الاثنين $a and $b
( or ) يجب تحقق كلاهما او احدهما $a or $b
( Xor ) يجب تحقق احدهما و ليس كلاهما $a xor $b
( ! ) نفي تحقق الشرط نفي لقيمة a !$a

ملاحظة : يمكن كتابة الـ ( and ) بالشكل التالي ( & ) والـ ( or ) بالشكل التالي ( | ) والـ ( Xor ) بالشكل التالي ( ^ ) ..

And ( و ) ..
إذا تحقق الشرطان ، بمعنى المتغير الأول يساوي 7 والمتغير الثاني يساوي 5 نفذ أمر الطباعة واطبع صحيح :
Code ..


<?
$x = 7;
$y = 5;
if (($x == 7) and ($y == 5)) print "صحيح";
// يتم طباعة صحيح
?>






Or ( أو ) ..
إذا كان أحد الشرطين صحيح أو الاثنين صحيحين نفذ أمر الطباعة :
Code ..


<?
$x = 7;
$y = 5;
if (($x == 7) or ($y == 8)) print "True";
// True يطبع
?>






Xor ..
إذا تحقق أحد الشرطين وليس الاثنين معا ينفذ أمر الطباعة :
Code ..


<?
$x = 7;
$y = 5;
if (($x == 7) xor ($y == 8)) print "True";
// True تحقق شرط واحد فقط فيتم طباعة كلمة
?>






! ( النفي ) ..
إذا كانت جملة الشرط غير صحيحة نفذ أمر الطباعة :
Code ..


<?
$y = 5;
if (! ($y == 10)) print "True";
يطبع True لأن المتغير القيمة المخزنة فيه غير صحيحة
?>



العمليات المنطقية

&& ..
المعامل && له نفس وظيفة ( and ) لكن الاختلاف في ترتيب تنفيذ أولويات العمليات :
Code ..


<?
$x = 7;
$y = 5;
if (($x == 7) && ($y == 5)) print "True";
// True يطبع
?>






|| ..
المعامل || له نفس وظيفة ( or ) لكن الاختلاف في ترتيب تنفيذ أولويات العمليات :
Code ..


<?
$x = 7;
$y = 5;
if (($x == 7) || ($y == 5)) print "True";
// True يطبع
?>
قواعد البيانات :


قواعد البيانات
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين اما بعد ، ففي هذا الدرس بمشيئة الله تعالى سنتطرق الى مفاهيم عامة عن قواعد البيانات عموما وعن الـ Mysql خصوصاً ، لتكون بداية فهم لقواعد البيانات الهامة لأي لغة برمجة .

في البداية سنتعرف على مصطلح الـ RDBMS ، ونعني بذلك قواعد البيانات العلائقية ، والتي من خصائصها سهولة الوصول الى البيانات المخزنة فيها ، وسرعة اتمام عمليات الاستعلام المختلفة ، وبالاضافة الى المميزات الأخرى فان هذه النوع يعتبر الأكثر استخداماً في جميع التطبيقات سواء المستخدمة فيي الانترنت أو ذات الطابع البرمجي الخاص ، وبطبيعة الحال فإن الـ Mysql من هذا النوع .

ومن المهم معرفة بعض الاساسيات في الـ RDBMS ، والتي من شأنها تسهيل عملية فهمك التام لطريقة عملها والتعامل معها ..

1- الجداول Tables :
تعتبر أكبر جزء في قاعد البيانات ، وهي عبارة عن أعمدة وصفوف تحتوي على قيم معينة .

2- الأعمدة Columns :
لكل عمود في الجدول أسم خاص يختلف عن أسماء الأعمدة الأخرى في نفس الجدول ، ويجب ان يكون لكل عمود نوع خاص به يصف نوع البيانات التي ستخزن فيه ، وكم يظهر في الصورة ، فان عمود الرقم من النوع الرقمي Integer ، اما الحقلين الآخرين فهي نصوص Text .

3- الصفوف Rows :
كل صف من صفوف الجدول يحتوي على قيم مختلفة ويمثل معلومات متكاملة عن قطاع معين ، وفي مثالنا يمثل معلومات متكاملة عن سخص معين .

4- القيم Values :
وهي ما تحتوي عليه تقاطعات الصفوف بالاعمدة .

5- المفاتيح Keys :
وتعتبر من اساليب تسهيل الوصول الى المعومات في قواعد البيانات ، وفي مثالنا السابق نرى أن العمود Id يحتوي على ارقام متسلسلة لا تتكرر نهائياً بل أنها تتكون بشكل تلقائي عند ادراج أي صف جديد للجدول ، وبالتالي فإنها تعتبر المفتاح المناسب لكل صف من صفوف الجدول لضمان عدم الالتباس في اختيار الصفوف .


الاتصال بالـ Mysql

فلو افترضنا أن لدينا جدولين في قاعدة بيانات ، يحتوي الجدول الأول على معلومات عن الدروس مفصلة على عدة حقول لتلك الدروس ، على سبيل المثال :
الرقم ( id ) ، الدرس ( lesson ) ، رقم الكاتب ( Key_author ) ..
ويحتوي الجدول الثاني على بيانات الأعضـاء كما يلي :
الرقم ( Key_author ) ، الاسم ( name ) ..

والمطلوب هو طريقة لربط الجدولين ، بحيث أن رقم الكاتب في جدول الدروس ( Key_author ) يدل على اسم الكاتب في جدول الاعضـاء ( name ) .

بالتدقيق في المثال يتضح أن الحقلين ( أو العمودين ) Key_author في كلا الجدولين هو مفتاح الربط بينهما ، ولذلك يمكن الوصول الى اسم الكاتب اعتماداً على رقمه من جدول الدروس ، وبالتالي الربط بين الجدولين .

لن اتحدث طويلاً عن مقدمات قواعد البيانات Mysql ، ولكن بهذه المقدمة البسيطة يمكن على الاقل تصور بعض الاساسيات حول قواعد البيانات عموماً والـ Mysql خصوصاً ، ومن وجهة نظري فالاهم هو كيفية التعامل مع قواعد البيانات بما يخدم احتاجاتنا مع الـ PHP ، ولذلك ساتطرق في هذ الدرس الى نقطة هامة جداً وهي ادارة قواعد البيانات ، وأعني بذلك عملية انشاء قواعد البيانات والجداول والتحكم في الحقول والبيانات وغيرها ، لتكون الاسـاس للتعامل مع قواعد البيانات لاحقاً عن طريق الـ PHP ، ولعمل ذلك يوجد عدة طرق من اهمها الطريقة التقليدية المباشرة بالاعتماد على نظام الدوس في ذلك وبدون استخدام أي برامج أخرى للادارة .

الاتصال بالـ Mysql ، والتعامل معها :
كما قلنا أن الطريقة التقليدية هي الاتصال بقواعد البيانات عن طريق سيرفر الـ Mysql وبدون استخدام أي مكونات أخرى ، ولعمل ذلك نحتاج أن نعرف مسار سيرفر الـ Mysql على الجهاز المستخدم بعد عملية التثبيت ، كما قمنا بذلك في درس المقدمة ، وعادة يكون المسـار كالتالي ( C:mysqlbin ) ، وبذلك يمكن تشغيل البرنامج mysql.exe من داخل الـ Dos .

عموماً طريقة الاتصال بقاعدة البيانات هي كالتالي :

Code ..


mysql –h HostName –u UserName –p






مع استبدال الـ HostName باسم السيرفر لديك ، سواء كان السيرفر على نفس الجهاز وفي هذه الحالية تكتب localhost ، أو أن السيرفر الذي تود الاتصال به ليس على نفس الجهاز وبذلك تكتب المسار الكامل لاسم الـسيرفر ( HostName ) ، ومع استبدال الـ UserName باسم المستخدم الخاص بالـ Mysql لديك ، بعد ذلك سيتم طلب كلمة المرور الخاصة بقاعدة البيانات بعد الضغط على Enter ، قم بادخالها وسيتم فتح الاتصال بالـ Mysql ، كما يمكن كتابة mysql فقط ليتم فتح الاتصال بقاعدة البيانات فقط اذا كنت تعمل على نفس الجهاز وليس جهاز أخر .

سيظهر المؤشر الخاص باوامر الـ Mysql كالتالي :

Code ..


mysql>






وبهذا نكون وصلنا الى المكان المطلوب لكتابة اوامر الـ Mysql والتحكم بها .



show - create - use

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

Code ..


show databases;






بعد كتابة هذا الأمر ( بعد مؤشر الـ mysql> ) ، سيتم استعراض قواعد البيانات في السيرفر الذي قمنا بالاتصال به ، وفي حالة عدم وجود أي قاعدة بيانات قمت باعدادها من قبل ، فان من الطبيعي أن تجد قاعدتي بيانات موجودة بشكل تلقائي عند تثبيت السيرفر Mysql ، وتلك القاعدتان هي test – mysql .

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

بعد استعراض قواعد البيانات بالأمر السابق ، سنقوم بانشاء قاعدة بيانات باسم PHP ، ولعمل ذلك قم بكتابة الأمر التالي :

Code ..


create database PHP;






لو قمنا بكتابة الأمر السابق ( show database ) سنرى أن قواعد البيانات أصبحت 3 باضافة القاعدة PHP الى القاعدتين mysql – test ، ولاستخدام اي منها نقوم بكتابة الأمر التالي في مثالنا مع القاعدة PHP :

Code ..


use PHP;






وهذه يعني الدخول في قاعدة البيانات PHP واستخدام المؤشر ( mysql> ) لكتابة الأوامر المتعلقة بالتعامل مع قاعدة بيانات بعينها .




create tables

أول هذه الاوامر هو أمر انشاء جدول في قاعدة البيانات ، وهذه الأمر يحتاج الى تفصيل دقيق لبعض الخصائص مثل اسماء الحقول وانواع البيانات فيها ، وبعض الاشياء الأخرى ، عموماً قم بكتابة الأمر التالي وساقوم بشرح كافة التفاصيل بعد المثال :

Code ..


create table users (
id Int not null auto_increment Primary Key,
name text not null,
counter int
);






شرح المثال :
- قمنا بكتابة ( create table users ) وهذا يعني انشاء جدول باسم users .
- القوس ) يعني بداية تسمية حقول الجدول وخصائص تلك الحقول .
- السطر الأول من اسماء الحقول هو ( id ) والرمز ( int ) يعني وصف نوع البيانات التي ستخزن في الـحقل ( id ) ، وهي في هذه الحالة تعني نوع البيانات الرقمية ، اما الرمز ( not null ) فيعني عدم امكانية أن يكون هذا الحقل فـارغاً ، بل يجب أن يحتوي على قيمة ، والـ ( auto_increment ) يجعل الحقل يحتوي على قيم متسلسلة يستحيل تكرارها ، وسيبدأ من الرقم 1 ويبدأ بالزيادة بمقدار واحد في كل مرة يتم ادخال صف جديد الى هذا الجدول ، وفي النهاية الرمز ( Primary Key ) يعني أن الحقل هو المفتاح الرئيسي لهذا الجدول أو بمعني أنه سيتم التفريق بين صفوف الجدول اعتماداً على هذا الحقل ولهذا وضعنا ( auto_increment ) لضمان عدم اختلاط البيانات .
- السطر الثاني يحتوي على اسم الحقل ( name ) ونوع البيانات ( text ) أي نصي ، ونفس الرمز السابق الذي ذكرناه وهو ( not null ) .
- السطر الثالث يحتوي على اسم الحقل ( counter ) ونوع البيانات ( int ) ، ولاحظ أننا لم نذكر ( not null ) وبالتالي يمكن أن يكون هذا الحقل فارغاً لا يحتوي على أي قيمة ، ولن يكون هناك أي تعارض أو مشكلة بعكس الحقلين السابقتين .
- في السطر قبل الأخير ، أي قبل علامة الاغلاق ( ، سيكون بدون فاصلة .
- السطر الأخير يحتوي على اقفال عملية انشاء الجدول بالعلامة ); .

عموماً هذا المثال يعطي نبذة بسيطة عن كيفية اجراء مثل هذه الاوامر ، وسنتطرق الى بقية الأوامر في الأسطر القليلة القادمة .



show - describe - insert

يمكنك استعراض الجداول الموجودة في قاعدة بيانات عن طريق الأمر :

Code ..


show tables;






ولو قمت بتطبيق ذلك على المثال السابق فسترى أن الجدول users موجود في قاعدة البيانات PHP التي قمنا بانشاءها .

يمكن كذلك استعراض خصائص الجدول السابق users الذي قمنا بانشاءه في المثال السابق ، عن طريق الأمر التالي :

Code ..


describe users;






سترى أن حقول الجدول وخصائص كل جدول ظهرت لك بشكل واضح .

- التعامل مع بيانات الجداول :
بقي أن نذكر الطرق التي يمكن من خلالها ادخال البيانات الى الجدول users ، بل وكيفية التعامل مع تلك البيانات بالتعديل والحذف وغير ذلك ، وكما قلنا سابقاً أن هذه الاساسيات مفيدة جداً في البرمجة بلغة الـ PHP ، بل إن فهم هذه الطرق هو المفتاح الاساسي للتعامل مع قواعد البيانات عن طريق البي اتش بي ،

عموماً أول تلك الأوامر هو اضافة صف جديد الى الجدول ، وهذا ما يبينه المثال التالي :

Code ..


insert into users set
name = “Ahmad”;
counter = 3
;






مع ملاحظة أن users هو اسم الجدول ، name اسم الحقل ( العمود ) الأول ، counter اسم الحقل ( العمود ) الثاني ، كما تلاحظ أن الحقل id لم نتطرق له ، لاننا في اعدادنا للجدول ذكرنا أن الحقل id ( auto_increment ) أي ستضاف اليه القيم بشكل تلقائي وبشكل منظم ، كما قلنا في كل مرة يزيد العداد بقيمة 1 ، و بطبعية الحال يمكنك القياس على هذا المثال باستبدال ما يجب استبداله من اسم الجدول ( users ) واسماء الحقول ( name – counter ) وكذلك البيانات بما يناسب الذي تريد القيام به .
select

هذا بالنسبة لاضافة بيانات جديدة الى جدول معين ، اما بالنسبة لاستعراض البيانات في الجدول فكما يلي :

Code ..


select * from users;






ومعني select ( اختر ) ، ولذلك ستجد أن جميع البيانات التي في الجدول users قد تم سردها ، واذا كنت ملتزماً بالمثال السابق حرفياً فستجد أن البيانات التي اضفناها في المثال السابق ظهرت على شكل صف من صفوف الجدول ، وبالتالي كلما اضفت صفاً جديداً الى الجدول وقمت باستعراض البيانات تجد أن بياناتك قد تم تخزينها ، وينطبق الكلام السابق حول الاستبدال هنا ايضا ، فيمكن استبدال اسم الجدول users باي اسم لجدول في قاعدة البيانات المستخدمة ، وللتاكد من اسماء الجداول قم باستخدام الطريقة السابق ذكرها وهي ( show tables ) .

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

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

اما البيانات التي نود جلبها فهي كما يلي لكل نقطة على حدة :
1- بيانات الاعضاء الذين ليس لهم أي موضوع .
2- بيانات الاعضاء الذين لهم مواضيع أكثر من 5 مرتبين من الاكثر الى الاقل .
3- بيانات العضو Ahmed .
4- بيانات جميع الاعضاء مرتبين حسب الاسم .
5- بيانات العضو الأكثر مواضيعاً .

سنأخذ كل حالة على حدة ، أما الحالة الأولى فيمكن التعامل معها كما يلي :
Code ..


select * from users where counter=0;





الزيـادة التي قمنا بوضعها هي ( where counter=0 ) أي بحيث أن الحقل ( counter ) يساوي صفر ، وبالتالي سيتم اهمال أي صف من البيانات التي لا يحتوي الحقل ( counter ) فيها على القيمة صفر ، وسيتم جلب البيانات التي يحتوي هذا الحقل فيها على صفر .


أمثلة على select

الحالة الثانية :
Code ..


select * from users where counter >= 5 order by counter;





في هذا المثال اضفنا الشرط ( where counter >= 5 ) وهو واضح كما في المثال السابق ولكن تم تغيير الشرط لا اقل ولا اكثر ، اما الاضافة الأخرى فهي طريقة الترتيب وهي ( order by counter ) وتعني ( قم بترتيب البيانات المختارة بحسب الحقل counter ) ، وهناك طريقة أخرى للتحكم في الترتيب اما تصاعدي أو تنازلي وذلك باضافة كلمة asc ليكون الترتيب تنازلياً كما هو الحال في المثال السابق ، فسواء ذكرت ذلك أو سيتم اعتبارها تنازلياً بشكل تلقائي ، اما الاهم فهو طريقة الترتيب التصاعدي من الاقل الى الاكبر ويتم ذلك عن طريق كتابة الكلمة desc بعد الترتيب مباشرة لتصبح كما يلي :

Code ..


select * from users where counter >= 5 order by counter desc;






الحالة الثالثة :

Code ..


select * from users where name = “Ahmed”;






لاحظ أن الفرق الوحيد هنا هو استخدام علامات التنصيص ، لان نوع البيانات نصية .

الحالة الرابعة :

Code ..


select * from users order by name;






وقد أوردت هذا المثال لبيان أنه يمكن استخدام أحد الخيارات لجلب البيانات وترك باقي الخيارات ، فيمكن كما في المثال استخدام خيار الترتيب ( order ) وعدم استخدام الخيارات الباقية ( where – limit ) ، اما الخيار where فقد تطرقنا لنا سابقاً وتعرفنا على فائدته ، والخيـار الأخر limit هي ما سيتم التطرق اليه في المثال التالي الخاص بالحالة الخامسة :

الحالة الخامسة :

Code ..


select * from users order by counter limit 1;






والـ limit تعني عدد الصفوف المختارة ، أي لو قمنا بكتابة المثال السابق بدون الـ limit ستجد أن جميع البيانات سيتم اختيارها ، ولكن باستخدام الـ limit نقوم بتحديد عدد الصفوف التي سيتم اختيارها استناداً على طريقة ترتيبنا للبيانات ، فكما تلاحظ قمنا بترتيب البيانات بحسب الحقل counter ولم نذكر ( desc ) ولذلك فالبيانات يتم ترتيبها من الاكبر الى الاصغر ، وبالتالي فاختيارنا للحقل الأول يقضي باختيار بيانات الشخص الأكثر كتابة للمواضيع .


delete - update

بقي أن نذكر طريقي التعديل والحذف ليكتمل الدرس ، وسنبدأ بطريقة التعديل على البيانات الموجودة في الجدول users من قاعدة البيانات PHP ، والمثال التالي يوضح الطريقة التي سيتم شرحها بعد المثال :

Code ..


update users set
name = “Naser”,
counter = 30
where name=”Ahmad”;






الجملة update تعني تحدبث أو ( قم بتحديث ) ، والـ users هو اسم الجدول الذي نعمل عليه ، وفي السطر الثاني قمنا باسناد القيمة Naser الى الحقل name ، والسطر الذي يليه قمنا باسناد القيمة 30 الى الحقل counter ، ولكن لو توقفنا هنا بدون ذكر الصف الذي سيتم التعديل عليه ، سيتم تعديل كافة الصفوف في الجدول مهما كان عددها ، ولذلك كتبنا في النهاية where name=”Ahmad” ، بمعنى أن التغيرات السابقة ستحدث فقط على الصف من البيانات التي يحتوي فيها الحقل name على القيمة Ahmad .

ربما يكون المثال غير واضح بشكل كافي ، ولكن مع التمرس والمحاولة ستجد أن المسألة منطقية وواضحة بشكل كبير ، عموماً لم يبقى لدينا الا طريقة الحذف ، سواء كان لكل البيانات في الجدول ، أو لصف معين من البيانات وسنرى ذلك في المثالين التاليين ، وهما ما سنختم به هذا الدرس :

Code ..


delete from users;






الأمر السابق كفيل بالغاء جميع الصفوف في الجدول users كما هو واضح ، ولذلك كن متأكداً من أن التجارب التي تقوم بها هي على بيانات غير هامة .

Code ..


delete from users
where id = 1 ;






وهذا الحذف سيتم على الصف الذي يتحقق عليه الشرط ، وفي هذه الحالة على الصف من البيانات التي يحتوي فيها الحقل id على القيمة 1 .
دوال قواعد البيانات Mysql: -


يتبع اخواني حياكم الله

 

 

المصدر : معهد ترايدنت



» زيارات المقال : 898
» تــاريخ المقال : 19/11/2010
» عنوان المقال : سلسة تعليم واحتراف لغة php في بناء المواقع بكل سهولة الجزء الثاني مبتداء

تعليقات الزوار» Chianna
» تاريخ التعليق 14/5/2011
That's a mold-braeekr. Great thinking!

أضف تعليقك على المقال
» إسمك :
» إيميلك :
» التعليق :
» الكود : اكتب ناتج العدد 4 + 9

 

Preview on Feedage: %D8%AF%D9%84%D9%8A%D9%84-%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D9%84%D9%85%D8%B3%D8%A7%D8%AA-%D8%A8%D8%BA%D8%AF%D8%A7%D8%AF%D9%8A%D8%A9 Add to My Yahoo! دليل مواقع لمسات بغدادية Add to Google! دليل مواقع لمسات بغدادية Add to MSN دليل مواقع لمسات بغدادية
 

دليل مواقع لمسات بغدادية RSS

 Free counters!

 
 

تنبيه : إدارة الدليل لا تتحمل مسؤولية محتويات المواقع المضافة في الدليل

أصحاب المواقع يتحملون مسؤولية محتويات مواقعهم

 

 

sites

sitemap

 

قران كريم , العاب , برامج , تصميم , اسلام , دليل , اخبار , حديث , طب , صحة , حماية , كمبيوتر , سكربت , تحميل , انظمة , كتب , جوال , موبايل , اقتصاد , برمجة , تعاريف , موقع php , mysql , html , games , script , iraq , uae , egypt , saudi , morocco , kuwait , arab ,  jordan , libya , program , design , server,  islam , book , mp3

جميع الحقوق محفوظة © دليل مواقع لمسات بغدادية