Category

book

SQL شرح كامل للتعامل مع قواعد البيانات

 

SQL (لغة الاستعلام الهيكلية) هي لغة برمجة قياسية تُستخدم لإدارة قواعد البيانات العلائقية وتنفيذ عمليات مختلفة على البيانات الموجودة فيها. تم إنشاؤه في البداية في السبعينيات ، ويستخدم SQL بانتظام ليس فقط من قبل مسؤولي قواعد البيانات ، ولكن أيضًا من قبل المطورين الذين يكتبون نصوص تكامل البيانات ومحللي البيانات الذين يتطلعون إلى إعداد وتشغيل الاستعلامات التحليلية.

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

أصبحت SQL لغة البرمجة المعيارية الواقعية لقواعد البيانات العلائقية بعد ظهورها في أواخر السبعينيات وأوائل الثمانينيات. تُعرف أيضًا باسم قواعد بيانات SQL ، وتتألف الأنظمة العلائقية من مجموعة من الجداول التي تحتوي على بيانات في صفوف وأعمدة. يتوافق كل عمود في الجدول مع فئة البيانات – على سبيل المثال ، اسم العميل أو العنوان – بينما يحتوي كل صف على قيمة بيانات للعمود المتقاطع.

لا بد أنك قد لاحظت الآن أن هنالك الكثير من العمليات التي تستطيع قاعدة البيانات أدائها، فيمكنها أن تنشأ سجلا أو تحذف سجلات أو تعدل سجلا أو تغير جدولا أو تحذف جدولا وغيرها الكثير، هذه العمليات تجرى بواسطة لغة SQL وهي اختصار لعبارة Structured Query Language أي لغة الاستعلامات البنيوية، تسمى كل عملية تنفذ عن طريق لغة SQL بالاستعلام Query، وعلى حسب لغة البرمجة التي تستخدمها وبرنامج قواعد البيانات الذي تستخدمه فإن الاستعلامات ترسل وتنفذ بطرق مختلفة وكيفية الحصول على نتائج الاستعلام تختلف أيضا، في هذه الدورة لن يهمنا كيف تقوم بإرسال الإستعلام إلى قاعدة البيانات وتنفذه وتحصل على نتائجه، ولكن ما سنتحدث عنه هو كيفية كتابة الاستعلام نفسه، لغة SQL شبه متفق عليها بين جميع نظم قواعد البيانات، على سبيل المثال في موقعنا نستخدم لغة البرمجة PHP للوصول إلى مزود قاعدة البيانات MySQL، وهي من التوليفات الشهيرة، ومنها أيضا استخدام برنامج Visual Basic للوصول إلى مزود قاعدة بيانات Microsoft SQL Server لعمل البرامج التي تتطلب وصولا إلى بيانات مركزية كما في المحلات والأسواق والمخازن والمستشفيات وغيرها، ويمكن استخدام لغة SQL أيضا عن طريق البرامج المكتوبة بلغة C و C++ و Perl و Delphi للوصول إلى بيانات مخزنة في قواعد بيانات Oracle و Sybase و Informix و IBM/DB2 و Access وغيرها.

 

الشروط

Why You Should Learn SQL – Even If You're Not a Developer

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

SELECT telephone FROM directory WHERE name='Tim';

فإن ناتج تنفيذ الاستعلام السابق سيكون كالتالي :

name=’Tim’

telephone

1682340

حيث أن هنالك حقلا واحد فقط يطابق الشرط، والشرط هو أن يكون الاسم name يساوي Tim ولأن كلمة Tim جزء من البيانات المخزنة في قاعدة البيانات فإننا نحيطها بعلامات الاقتباس المفردة، لاحظ أيضا أن البرنامج لن يعيد الاسم أيضا ضمن النتائج وذلك لأننا لم نطلب الاسم في عبارتنا، ويمكننا الحصول على الاسم أيضا باستخدام هذه العبارة :SELECT telephone, name FROM directory WHERE name='Tim';

كما تلاحظ فإن عبارة SELECT من بدايتها وحتى ما قبل كلمة WHERE تعمل كما شرحنا في السابق بالضبط.

الجزء الذي يهمنا الآن في العبارة هو الجزء الذي يأتي بعد الكلمة WHERE أو ما يسمى بالشرط condition، تتكون عبارة الشرط الواحدة من ثلاثة أجزاء، الجزء الأول هو الطرف الأيسر من العبارة والجزء الثاني هو الطرف الأيمن من العبارة والجزء الثالث هو المعامل الذي يقع بين الطرفين، والمعامل في مثالنا السابق هو علامة المساواة ( = ) حيث أن شرطنا هو أن يكون الطرف الأيمن يساوي الطرف الأيسر حتى يتحقق الشرط :

leftside

operator

rightside

name

=

‘Tim’

والعوامل المستخدمة في الشروط مختلفة، أهما ما يلي :

معاملات الاختبار في SQL

المعامل

اسمه

=

يساوي

>

أكبر من

<

أصغر من

<=

أكبر من أو يساوي

>=

أصغر من أو يساوي

<>

لا يساوي

LIKE

يشبه

العامل الأول هو عامل المساواة وهو يتحقق عندما يكون الطرف الأيمن والأيسر متساويان، كما رأينا في المثال السابق، العوامل التالية تبدو واضحة وهي > ويتحقق عندما يكون الطرف الأيسر أكبر من الطرف الأيمن، < ويتحقق عندما يكون الطرف الأيمن أصغر من الطرف الأيسر، وبعدها أكبر من أو يساوي ثم أصغر من أو يساوي.

أما المعامل السادس <> فيعني لا يساوي ويتحقق الشرط فيه عندما يكون الطرف الأيمن لا يساوي الطرف الأيسر.

قد تبدو مقارنة النصوص باستخدام العوامل < و > غريبة نوعا ما، فكيف نقول مثلا بأن ‘Tim’ < ‘Jim’ ؟ الأمر في غاية البساطة، كل ما عليك فعله هو أن تتخيل بأنك تريد أن ترتب هذا الجدول تنازليا فهذا يعني بأن القيم العليا تكون فوق والقيم الدنيا تكون في أسفل الترتيب، ولهذا فإن ‘z’ > ‘a’ تعتبر عبارة صحيحة.

العامل الأخير من عوامل المقارنه هو العامل LIKE ( يشبه ) وهو يستخدم لمقارنة النصوص عادة، ويتحقق الشرط فيه عندما يكون الطرف الأيمن يشبه الطرف الأيسر، ويكتب طرفها الأيمن في صورة نص يحتوي على علامات النسبة المؤوية ( % ) وهي تعني ( أي شيء ) بمعني أنك إذا قلت

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فهذا يعني بأن الاسم يجب أن يكون ( أي شيء ) ثم الحرف ‘m’، أو بمعنى آخر سيكون الشرط متحققا في السجلات التي ينتهي الاسم فيها بالحرف ‘m’، وإذا كتبنا :

SELECT name,telephone FROM directory WHERE name LIKE 'm%';

 

فهذا يعني m ثم ( أي شيء ) أي أنها تطابق حقول name التي تبدأ بالحرف m، حسنا ماذا لو قلنا :

SELECT name,telephone FROM directory WHERE name LIKE '%m%';

أما هذه فتعني ( أي شيء ) ثم الحرف m ثم ( أي شيء ) أي أنها ستطابق جميع السجلات التي يحتوي الحقل name فيها على الحرف m.

يمكنك أن تقيس على ذلك الكثير من الأمور، فيمكنك أن تبحث في قاعدة البيانات عن حقل يبدأ بكلمة ‘this’ وبعدها بعدة أحرف أو كلمات أو ( أي شيء ) تأتي كلمة ‘one’ فتكتب هكذا :

text LIKE 'this%one%'

دعنا نجرب تطبيق هذا الاستعلام على قاعدة البيانات التي نعمل عليها :

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فإن النتائج ستكون كالتالي :

name LIKE ‘%m’

Name

Telephone

Tim

1682340

Jim

2462466

استخدام أكثر من شرط

يمكنك استخدام أكثر من شرط واحد عن جلب سجلات بياناتك، فيمكنك مثلا أن تبحث عن جميع الحقول التي يبدأ اسم صاحبها بالحرف J والحرف D، أو ربما تريد البحث عن جميع الأشخاص الذين تاريخ ميلادهم أكبر من 1 يناير 2000 وأصغر من 5 فبراير 2000 وهكذا أمور، يمكنك أن تربط بين الشروط باستخدام أداتين مختلفتين للربط هما AND و OR، وهاتان الأداتان تساويان && و || على التوالي في بعض لغات البرمجة.

الأداة الأولى ومن اسمها AND ( و ) تجعل السجل محققا للشرط عندما يتحقق الشرط الذي على يمينها والشرط الذي على يسارها معا، فمثلا عندما نقول :

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ AND telephone > 20000000;

ويعني ذلك بأن السجلات الوحيدة التي سيتم عرضها هي التي يتحقق فيها كل من الشرطان معا، فتكون name تنتهي بالحرف m ورقم الهاتف أكبر من 20000000، فهي تعيد السجل الوحيد الذي يحقق الشرطان كالتالي :

name LIKE ‘%m’ AND telephone > 20000000

Name

Telephone

Jim

2462466

أما OR ( أو ) فيكفي لتحققها أن يتحقق أحد الشرطان فقط، فإذا قلنا :

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ OR telephone > 20000000;

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

name LIKE ‘%m’ OR telephone > 20000000

Name

Telephone

Jim

2462466

Tim

1682340

Dill

3636778

كما تلاحظ، السجل الأول Tim كان من ضمن السجلات التي حققت الشرطان معا فكان من ضمن جدول النتائج، أما السجل الثاني Jim فلم يحقق الشرط الثاني وكان الحقل telephone فيه أقل من 20000000 إلا أنه كان من ضمن جدول النتائج لأنه حقق الشرط الأول وهذا كاف، والسجل الثالث Dill حقق الشرط الثاني ولم يحقق الأول حيث أنه لا ينتهي بالحرف m.

استخدام OR و AND معا

يمكنك ربط أكثر من شرط باستخدام أكثر من أداة ربط ولأكثر من مرة، فيمكنك أن تقول مثلا :

SELECT name,telephone FROM directory WHERE
telephone > 20000000 OR telephone = 30000000 AND name LIKE '%m';

العبارة السابقة تنطوي على حيلة ما، قد يبدو لك في الوهلة الأولى أن العبارة تقوم بمطابقة جميع السجلات التي يكون الحقل name فيها ينتهي بالحرف m وفي نفس الوقت يكون رقم الهاتف فيها أكبر من 20000000 أو يكون يساوي 30000000، ولكن الواقع يختلف عن ذلك، عندما يكون هنالك أكثر من أداة ربط، ويكون هنالك أكثر من شرطين، فإن برنامج قاعدة البيانات سيقوم بتنفيذ أداة الربط AND أولا حسب ترتيبها بالجملة، وبعد ذلك يقوم بربط الجمل التي تستخدم الأداة OR.

يعني ذلك بأنه في العبارة السابقة الأداة AND تربط شرطان هما telephone = 30000000 و name LIKE ‘%m’ أما الأداة OR فتربط شرطان هما telephone > 20000000 و telephone = 30000000 AND name LIKE ‘%m’، ونقول هنا بأن AND لها أولوية التنفيذ حيث قامت بربط الشروط التي على جانبيها، وأصبح شرطا واحدا وبعد ذلك يبدأ عمل الأداة OR في ربط الشروط التي على جانبيها واللذان كانا الشرط الكبير الناتج من ربط الأداة AND للشرطان الصغيران، بالإضافة إلى الشرط الآخر الذي على شمالها.

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

SELECT name,telephone FROM directory WHERE (telephone > 20000000 OR telephone = 30000000) AND name LIKE ‘%m’;

 

لأن الأقواس لها أولوية أعلى في التنفيذ من العبارة OR ( الأقواس لها أعلى أولوية على الإطلاق )، فإن البرنامج يقوم بتنفيذ ما بداخل الأقواس أولا، وفي داخل الأقواس سيجد شرطان مربوطان بالأداة OR فيقوم بربطهما وينتج شرط واحد كبير، وبعد ذلك يأتي دور العبارة AND فترتبط الشرط الكبير الذي بداخل الأقواس مع الشرط الذي يأتي على يمينها وهو name LIKE ‘%m’.

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

النفي بالعبارة NOT

تقوم العبارة NOT بنفي الشرط الذي يأتي بعدها، فتصبح العبارة صحيحة إذا كانت خاطئة وتصبح خاطئة إذا كانت صحيحة، مثلا العبارة التالية

 

:

SELECT name,telephone FROM directory WHERE NOT name = 'Tim';

ستعيد جميع السجلات التي لا يكون فيها الحقل name يساوي Tim وهكذا، ويمكن استخدامها في تراكيب أكثر تعقيدا مع الأداتان AND و OR والأقواس.

في المرة القادمة ..

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

 

 

قواعد اللغة

عند كتابتك لاستعلامات SQL يجب أن تتذكر الأمور التالية دائما :

  • لغة SQL لا تفرق بين الحروف الكبيرة والصغيرة فلا فرق بين كتابة الكلمة SELECT والكلمة select والكلمة SeLeCt وكلها تعامل بنفس الطريقة، قد تكون هنالك بعض الاستثناءات في أسماء الجداول أو الحقول، يجب أن تراجع دليل الاستخدام المرفق مع برنامج قاعدة البيانات الذي تستخدمه للتأكد من ذلك.

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

    SELECT        *
    FROM directory;
    
  • تنتهي جميع الاستعلامات بالفاصلة المنقوطة ( ; ).

  • العبارات النصية التي لا تعتبر جزءا من عبارات الاستعلامات توضع بين قوسي اقتباس مفردين ويتيح بعض برامج قواعد البيانات استخدام أقواس الاقتباس المزودجة أيضا ( ” .. ” ).

  • إذا كنت تريد استخدام علامات الاقتباس كجزء من النص الذي تريد إدخاله إلى قاعدة البيانات فإنك تضع قبلها علامة الشرطة الخلفية لتصبح هكذا ( \’ ) أو في بعض برامج قواعد البيانات فيتم ذلك بمضاعفة علامة الاقتباس ( ” )، فمثلا إذا أردت وضع العبارة التالية في قاعدة البيانات :I'm me

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

    ‘I\’m me’ ‘I”m me’

 

العبارة SELECT

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

SELECT fields FROM tables;

حيث أن fields هي أسماء الحقول وtables هي أسماء الجداول التي نريد أن نحصل على الحقول منها، فإذا كان لدينا الجدول التالي في قاعدة البيانات على سبيل المثال :

Directory Table

Name

Telephone

John

1291233

Tim

1682340

Jim

2462466

Dill

3636778

إذا أردنا أن نحصل على الحقلين Name و Telephone في الجدول السابق فإن العبارة التي سنستخدمها هي :

SELECT name,telephone FROM directory;

والعبارة السابقة تعيد الجدول كما هو في الأعلى بالضبط، ولكن ماذا لو كتبنا كلمة telephone قبل كلمة name في عبارة SQL السابقة فتصبح كالتالي :

SELECT telephone,name FROM directory;

عند تنفيذ العبارة السابقة سنحصل على الجدول التالي :

telephone,name

Telephone

Name

1291233

John

1682340

Tim

2462466

Jim

3636778

Dill

أما إذا كتبنا العبارة كالتالي :

SELECT name,telephone,name FROM directory;

فسنحصل على النتيجة التالية :

name,telephone,name

Name

Telephone

Name

John

1291233

John

Tim

1682340

Tim

Jim

2462466

Jim

Dill

3636778

Dill

وماذا لو قمنا بتنفيذ العبارة التالية :

SELECT name FROM directory;

فالناتج سيكون كالتالي :

name

Name

John

Tim

Jim

Dill

كما تلاحظ ليست هنالك أية قواعد ثابته، فلا يمكنك أن تقول بأن الحقل name هو الحقل الأول في الجدول، أنت من يحدد الآن ما هو الحقل الأول وما هو الحقل الثاني وهكذا.

قد تحتاج في بعض الأحيان أن تعرض جميع الحقول في الجدول، فيمكنك استخدام علامة النجمة ( * ) في مكان الحقول للحصول على جميع الحقول التي في الجدول، فاستخدام العبارة التالية سيعيد الجدول بأكمله كما كتبناه أول مرة :

SELECT * FROM directory;

 

 

مزودات قواعد البيانات

من الطرق الشهيرة لتخزين قواعد البيانات هي وضعها في صورة ملفات نصية بسيطة Plain Text، بحيث يوضع كل سجل في سطر من أسطر الملف ويفصل بين الحقول المختلفة في كل سجل بفاصلة comma ( , )، وتكون أحيانا في صورة ملفات أكثر تعقيدا بحيث يحتوي الملف على الكثير من الجدوال والفهارس التي تسرع عمليات البحث في قواعد البيانات والاستعلامات الجاهزة والنماذج كما في قواعد بيانات Microsoft Access.

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

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

 

PHP اليك 6 اسباب لتبدأ بتعلم

 

PHP هي لغة برمجة نصية مفتوحة المصدر من جانب الخادم يستخدمها العديد من المطورين لتطوير الويب. إنها أيضًا لغة للأغراض العامة يمكنك استخدامها لإنشاء الكثير من المشاريع ، بما في ذلك واجهات المستخدم الرسومية (GUIs).

في هذه المقالة ، سأساعدك في استكشاف عالم PHP حتى تتمكن من معرفة كيفية عملها وميزاتها الأساسية. في النهاية ، ستكون قادرًا على كتابة أول برنامج Hello World لك بلغة PHP.

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

What is PHP language and How to learn it? - Softreno

1 – هيمنة السوق

في حين ان البعض قد يجادل بان دخول اللاعبين مثل بيثون ، روبي علي القضبان والعقدة. شبيبه هزت شعبيه لغة البرمجة ، 80 ٪ من المواقع لا تزال تعمل علي PHP. عمالقة مثل فليكر ، ويكيبيديا ، نعرفكم والفيسبوك أدرجت اطار PHP لتشغيل موقعهم علي الإنترنت.

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

2 – المرونة

PHP ليست ملزمه بقواعد; فانه يوفر للمطورين الحرية الابداعيه لبناء اي شيء علي الإطلاق. وكانت سهوله استخدام لغة البرمجة ومرونتها هي الميزة الأكبر.

 

3 – إطارات العمل

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

4 – مجتمع كبير يمكن الاعتماد عليه

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

5 – منحني التعلم السهل

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

6 – فرص أفضل

كمطور PHP ، يمكنك الوصول إلى فرص وظيفية متعددة. منصات التجارة الكترونيه مثل Magento و WooCommerce والأكثر شعبيه CMS ، وورد ، وقد بنيت في PHP. مع هذا الطلب في كل من المتاجر علي الإنترنت ونظم أداره المحتوي ، والطلاب لديهم العديد من الفرص المهنية المربحة للاختيار من بينها.

PHP هي واحده من لغات البرمجة الأكثر شعبيه وليس تباطؤ اي قريبا. إتقان مهارات الترميز PHP في برنامج التدريب في المدرسة التعليمية الخاصة بي وبناء مهنه ناجحه في تطوير الشبكة.

 

بدون جافا سكريبت Toggle Switch طريقة عمل

 

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

تبديل التبديل لها وظيفة مماثلة لمربعات الاختيار ، ولكن على عكس مربعات الاختيار ، فإن التفاعل مع مفتاح التبديل عادة ما يكون له تأثير فوري على التطبيق أو النظام.

طريقة عمل switch btn بإستخدام input وأحد فقط و بدون javascript


تحتوي على البنيه الاساسيه

الخاصية الجديدة هي
appearance: none;

و الهدف منها التخلص من التنسيق الأساسي الذي يقوم المتصفح بعمله لل
input checkbox

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


نلاحظ ان الأب
.switch

يحتوي على الإبن
.switch::before

 


تم إضافة تنسيق للعنصر before

بعد أضافه التنسيق الخاص بنا


يتم تغيير خلفيه الأب
و تغيير خلفية و مكان الإبن

نستخدم
:checked
من أجل تحديد إذا تم النقر على input checkbox

إذا تم النقر يتم تطبيق الخواص


الخاصية appearance
غير مدعومة في كل المتصفحات و يجب أضافه ال prefix

 

Laravel Packages أفضل ال

 

Laravel هو إطار عمل ويب PHP مجاني ومفتوح المصدر ، تم إنشاؤه بواسطة Taylor Otwell ويهدف إلى تطوير تطبيقات الويب وفقًا للنموذج المعماري للنموذج – العرض – المتحكم (MVC) استنادًا إلى Symfony. بعض ميزات Laravel عبارة عن نظام تجميع معياري مع مدير تبعية مخصص ، وطرق مختلفة للوصول إلى قواعد البيانات العلائقية ، والمرافق التي تساعد في نشر التطبيق وصيانته ، وتوجيهه نحو السكر النحوي

why i always get unauthenticated in laravel-apidoc-generator? - Stack Overflow

وهذه مجموعة من افضل الاضافات Packages لمبرمجين Laravel Socialite

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

Laravel Debugbar

GitHub - barryvdh/laravel-debugbar: Laravel Debugbar (Integrates PHP Debug Bar)

 

تعتبر واحده من افضل الحزم لإدارة عملية الـDebugbar ,لانه يضيف شريط ادوات يعرض فيه الاستثناءات ورسائل الخطأ والمسارات والاستعلامات من قاعدة البيانات وغيرها من الاضافات التي تسهل عليك عملية تصحيح واكتشاف الاخطاء.

Laravel Entrust

GitHub - acoustep/entrust-gui: A Laravel 5 GUI for Entrust

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

هذه الاضافة مميزة جدا حيث تسهل عليك عملية اعداد وتهيئة موقعك لمحركات البحث SEO والتحكم بكيفية ظهوره بها وبشبكات التواصل الاجتماعي مثل خاصية Twitter Card و Open Graph كماتدعم العديد من الخيارات الاخرى لمديري المواقع.

 

Laravel Charts

GitHub - laravel-admin-extensions/chartjs: Use Chartjs in laravel-admin

هذه المكتبة مبنيه على Javascript حيث تمكنك هذه الاضافة من انشاء مخططات و رسومات بيانيه بسهوله لعرضها وتضمينها بمشروعك.
Eloquent-Sluggable

هذه الاضافة تمكنك من عمل عنوانين او Slug متوافقة مع محركات البحث ,حيث تزيل المسافات والاحرف الغير ملائمة ليكون العنوان صحيح بعدها يمكنك وضعها كعنوان URL .

LARAvel Voyager

Laravel Voyager – A Laravel Admin Package | Laravel News

هذه الاضافة تسهل عليك عمل لوحة تحكم كاملة لمشروعك ,من ناحية التحكم بالمستخدمين وادارة الملفات وبناء القوائم ومكانية عمل CRUD لاي Model تريده.

LARAvel AvoRed

Front Design Improvements · Issue #11 · avored/laravel-ecommerce · GitHub

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

 

PHP Farmwear اشهر

 

في بداية هذا المقال دعونا في البداية نعيد شرح تعريف لغة ال PHP وما هي؟!

PHP هي لغة برمجة نصية للأغراض العامة وموجهة نحو تطوير الويب. تم إنشاؤها في الأصل من قبل المبرمج الكندي الدنماركي راسموس ليردورف في عام 1994.  يتم الآن إنتاج تطبيق مرجع PHP بواسطة مجموعة PHP . كانت PHP في الأصل تعني الصفحة الرئيسية الشخصية ،  ولكنها الآن تعني التهيئة العودية PHP: Hypertext Preprocessor

KDevelop PHP Support - KDE Applications

اشهر اطارات عمل للغة الPHP، هي لغة برمجة مفتوحة المصدر تعمل من جانب الخادم. هذه اللغة شائعة جدًّا، إذ أن لكن كيف تعرف إطار PHP الأنسب لك؟

في هذه التدوينة سنسرد أفضل 10 إطارات عمل لـ PHP لمساعدتك على اختيار الأنسب من بينها.

لماذا عليك استخدام إطار عمل PHP؟

يوفر إطار عمل PHP بنية وأدوات أساسية لتبسيط عملية تطوير تطبيقات الويب. لذا فنحن نستخدمها لأنها تُسرِّع عملية التطوير.

علاوة على ذلك، تساعد استجابة (responsiveness) المواقع والتطبيقات المبنيّة باستخدام إطارات عمل PHP الشركات على تطوير أدائها. لذلك، لا يوجد أدنى شك في أنّ إطارات عمل PHP ستجذب المزيد من الاهتمام والشعبية في عام 2020م

 

أفضل إطارات عمل PHP:

فيما يلي قائمة تضم أفضل إطارات عمل PHP، بناءً على الشعبية والقدرة على تسهيل تطوير التطبيقات.

1. Laravel

تم طرح Laravel في عام 2011، وقد صار إطارَ عمل PHP المجانيَّ ومفتوحَ المصدر الأكثر شعبية في العالم. لماذا؟ لأنه قادر على التعامل مع تطبيقات الويب المعقدة بشكل آمن، وبوتيرة أسرع بكثير من الإطارات الأخرى. يُبسِّط Laravel عملية التطوير عبر تسهيل المهام الشائعة، مثل التوجيه (routing)، والجلسات (sessions)، والتخزين المؤقت (caching)، والاستيثاق (authentication).

2. CodeIgniter

معروف بحجمه الصغير (حوالي 2 ميغابايت فقط، بما في ذلك التوثيق)، إطار العمل CodeIgniter مناسب لتطوير المواقع الديناميكية. ويوفر العديد من الوحدات الجاهزة التي يمكن أن تساعد في بناء مُكوِّنات قوية وقابلة لإعادة الاستخدام.

3. symfony

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

4. CakePHP

إن كنت تبحث عن أداة تجمع بين البساطة والأناقة، فقد لا تحتاج إلى مزيد من البحث، فإطار العمل CakePHP سيساعدك على تطوير مواقع ذات تصميم مثير للإعجاب، وغنية بالميزات. بالإضافة إلى ذلك، يُعد CakePHP واحدًا من أسهل الإطارات لتتعلمها، بسبب توفيره لنظام CRUD (إنشاء [create] وقراءة [read] وتحديث [update] وحذف [delete]). دخل CakePHP إلى السوق في عام 2000، ومنذ ذلك الحين تحسّن أداؤه، واكتسب العديد من المكونات الجديدة.

6. Zend

إطار العمل Zend هو إطارٌ كائني (object-oriented) متكامل، وحقيقة أنه يستخدم ميزات مثل الواجهات والوراثة، فهذا يجعله قابلاً للتمديد. تم تصميمه وفقًا للمقاربة المرنة (agile)، والتي ستساعدك على بناء تطبيقات عالية الجودة للمؤسسات والشركات. Zend قابل للتخصيص، ويلتزم بأفضل ممارسات PHP – وهي نقطة مهمة للمطورين الذين يرغبون في إضافة وظائف مرتبطة بالمشروع (project-specific).

7. Phalcon

Phalcon هو إطار عمل PHP متكامل، يستخدم بنية MVC، وقد كُتِب في الأصل بلغتي C و ‎C++‎‏، وتم إصداره في عام 2012. نظرًا لأنه يٌقدّم كملحق C، فلن تكون مضطرا لتعلم لغة البرمجة C.

 

Android for Cars مكتبة تطبيقات الـ

بتوه كتير بالعربية ومش بتعرف توصل للمكان الي انت عايزه؟

بتدخل دخلات غلط ومش بتعرف ترجع للطريق الصح علشان توصل؟ ❎

✅ دلوقتي Android Auto عملت توسيعات كبيره جدا علشان تمكِّن تطبيقاتك للتحرك والتنقل ومواقف السيارات وغيرها كتير ??

= لحظة ايه هو Android Auto أصلاً؟

أندرويد أوتو Android Auto يحصل على إضافات جديدة - سماعة تك

✅ نقدر نقول عليه الرفيق الذكي لأي شخص بيسوق والي هيساعدك إنك تحافظ على تركيزك طول ما انت بتسوق وتستمتع كمان باستخدام واجهة بسيطة جدًا من Google Assistant

?قبل ما نقول أي حاجه تاني، الـ Google Assistant هو عباره عن برنامج زي مساعد افتراضي بيشتغل بالذكاء الاصطناعي ”AI“ وتم تطويره باستخدام Google ?

بَعد جهود كتير وتطورات اكتر نقدر نقول انو ظهرت تحسينات لمكتبة تطبيقات Android for Cars ?

✅ وانت كـ Developer دلوقتي هتقدر تستخدم المكتبه دي وكمان هتقدر تصمم وتطور وتختبر تطبيق التحرك او التنقل بتاعك او تطبيق وقوف السيارات بتاعك بردو ?‍??

خلينا نتكلم شويه عن بعض المراحل المهمة للتطبيق بتاعك بشكل عام ?

? مرحلة التصميم والتطوير هي اكتر وقت هتقدر تتعرف فيه على إرشادات وتعليمات التصميم وجودة التطبيق بتاعك ✅

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

? أما مرحلة الاختبار فـ هتقدر تشوف فيها تطبيقك في الحقيقه باستخدام DHU وده اختصار لـ Desktop Head Unit وده ببساطة ”هو المحاكي الي هيخليك تقدر تعرض المعلومات وتستمتع في العربية“ ?

كده هتقدر تركز اوي في الطريق من غير ما تشتت نفسك بأي حاجه خارجيه ?

تقدر تستخدم مكتبه Android for Cars وتشوف أمثلة عليها وتعرف إزاي تستخدمها، من اللينك ده

https://github.com/android/car-samples/tree/master/Auto/car_app_library

ماتنساش بقى تنشرلنا الموضوع ???

JSON ما هي ال

ال JSON او JavaScript Object Notation هي ليست لغة برمجة بينما هي طريقة تستخدم لتمثيل البيانات وتبادلها بين لغات البرمجة بحيث يمكن قراءة وفهم البيانات بسهولة، صيغة JSON تمثل عن طريق نص و Structure لهذا النص تشبة Object في لغة الجافا سكريبت وبستخدم هذة الصيغة لتبادل البيانات بين Client و Server.

JSON

طريقة تمثيل البيانات في JSON ?‍??

– يمكن تمثيل البيانات عن طريق حاجتين اساسيين هما Key و Values
– ال Key: يمثل اسم فريد لقيمة البيانات ويتم وضعه عادة بين علامات التنصيص.
– ال Values: تمثل البيانات ويمكن أن تمثل اكثر من نوع بيانات مثل النصوص والأرقام والمصفوفات.

استخدام ال JSON ?

– من اشهر استخداماتة التعامل مع API معين من خلال تطبيق أو من خلال موقع إلكتروني.

(store procedure) sql الإجراءات المخزنة في

الاجراءات المخزنة في sql او مايسمى ب store procedure مهمة جدآ في عالم برمجة قواعد البيانات كما انها سهلة الانشاء وسهلة البناء
#التعريف : هي عبارة عن اجراء معين تقوم بممهمة معينة او هي عبارة عن مجموعة من الاوامر تقوم بمهمة معينة مثل حساب نسبة ضريبة المبيعات – الارباح الشهرية – مستحقات موظف وهكذا
يستطيع المبرمج الاستغناء عن الاجراءات المخزنة وينفذ المطلوب بدون استخدام الاجراءات المخزنة لكن المبرمج الاكثر احترافآ هو الذي يحسب للوقت الف حساب فيتجنب اهدار المزيد من الوقت والجهد بالقيام ببناء اجراء مخزن لتنفيذ عملية معينة يستدعيها متى شاء ليوفر على نفسه الجهد لكتابة الاوامر من جديد

A Basic Guide to SQL Server Stored Procedures
ربما احتاج الى حساب نسبة الضريبة اكثر من مرة في البرنامج واستطيع تكرار الكود هذا الامر يبدو مجهدآ بالفعل سوف اتجنب هذا الاجهاد ببناء اجراء يقوم بحساب نسبة الضريبة مرة واحدة واستدعيه اكثر من مرة واجنب نفسي اهدار جهدي واهدار مساحة في الذاكرة العشوائية فانت كلما اجهدت نفسك بتكرار الكود يعتبر هذا اجهاد ايضآ للكمبيوتر لذلك تم اختراع مايسمى بالاجراءات والدوال
نفس الحال هو في sql يمكنك بناء اجراء وتخزنه في sql وتستدعيه وقتما شئت …
#بنيةالاجراءالمخزن : سنتعرف الان على كيفية بناء الاجراء المخزن
تاتي بنية الاجراء المخزن بالشكل التالي :

Create procedure <procedure_Name>
As
Begin
<SQL Statement>
End Go

في البداية نكتب Create procedure وهذا لاعطاء امر ل sql لانشاء اجراء مخزن يلي ذلك <procedure_Name> وهو اسم الاجراء
في السطر التالي ستجد الامر AS وهو يرمز الى بداية الاجراء
يلي ذلك التعبير <SQL Statement> وهو امر ال select الذي سيتم بناءه داخل الاجراء وهذا يسمى جسم البرنامج
اما Begin و End Go فهي بداية الاجراء ونهايته

#مثال
لنفترض ان لدينا جدول الموظفين EmP ويحتوي على التالي
رقم الموظف – اسم الموظف – االراتب – البدلات :

Emp table
Emp_no : emp_name : salary : Allowances
E1 : khaled : 1000 : 150
E2 : omer : 1200 : 170

لنفترض اننا نريد انشاء اجراء مخزن اسمه total يقوم بحساب الاجمالي
الراتب + البدلات (salary+Allowances) لجميع الموظفين هنا سيكون شكل الاجراء كالتالي :

CREATE PROCEDURE total
AS
SELECT [salary+Allowances] FROM Emp
GO

بعد كتابة الكود اللازم للاجراء وتنفيذه تستطيع استدعائه وقتما شئت بالامر التالي

EXEC total ;

اي قم بتنفيذ واستدعاء الاجراء total
سيكون هناك دروس اخرى وتطبيقات في الاجراءات المخزنة store procedure

Encapsulation التغليف في البرمجة الكائنية 

التغليف Encapsulation في البرمجة الكائنية احد المصطلحات الا بتقابلنا واحنا بدرس البرمجة الكائنية oop هنتكلم على مقدمة بسيطة قبل البدء فى التعريف ببساطة لما كنا بنبداء فى عمل اى مشروع
كنا بنبداء بعمل الكلاس الخاص بالمشروع ثم يتم عمل كائن object من هذا الكلاس او عمل وراثة من هذا الكلاس . وكنا بنقدر نتعامل مع المتغيرات الموجودة داخل هذا الكلاس بكل سهولة من اسناد قيم لها او طباعة قيم هذة المتغيرات .
وبتطبيق مصطلح Encapsulation بمجرد انشاء الكلاس وبتطبيق مصطلح Encapsulation وعند الرغبة فى عمل كائن من هذا الكلاس او وراثة لا يمكن لهذا الكائن الوصول الى متغيرات هذا الكلاس بطريقة مباشرة .

من المقدمة السابقة يمكن
تعرف Encapsulation بانها وسيلة لاخفاء بيانات الكلاس ومنع التعامل معها بطريقة مباشرة من خارج الكلاس.

السؤال كيف يتم اخفاء بيانات الكلاس ومنع التعامل معها خارج الكلاس ؟Encapsulation In C++

هنا هيظهر دور Access modifiers وبالتحديد private او خاص وبالتالى يتم تحديد طرق الوصول الخاصة بالمتغيرات بانها خاص private . private ويقصد بة انة يمكن الوصول للبيانات فقط من داخل الكلاس .

سؤال ماهى الطريقة غير المباشرة للوصول الى البيانات التى تم اخفائها من خارج الكلاس؟

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

getter & setter عبارة عن دوال
getter تستخدم للحصول على قيمة المتغير
setter. تستخدم لاسناد قيمة للمتغير

هنا يتم اعطاء هذة الدوال صلاحية الوصول لهذة المتغيرات والتعامل معها وعندما نريد التعامل مع المتغيرات من خارج الكلاس يتم من خلال هذة الدوال (بطريق غير مباشر) . وطالما يتم التعامل مع المتغيرات من خلال هذة الدوال . فمن الممكن التحكم او عمل شرط (validation) على القيم المررة للدالة setter قبل حفظها بداخل هذة المتغيرات .

الخلاصة

حتى نتمكن من تطبيق مفهوم Encapsulation يتم اولا جعل امكانية الوصول للمتغيرات private وبعدها اذا اردنا اسناد قيمة لاى متغير من خارج الكلاس نستخدم دالة setter اما اذا اردنا الحصول على قيم المتغير نستخدم دالة getter ولو اردنا اسناد والحصول على قيم المتغير نستخدم الدالتين معا .ومن الممكن عمل شرط على هذة البيانات قبل تخزينها بداخل هذا المتغير من خلال الدالة setter .

php دالة الوقت والتاريخ فى

 

لعرض التاريخ والوقت نستخدم الدالة ( )date .
اولا : لعرض التاريخ :

d لعرض اليوم ولكن فى صورة رقمية
D لعرض اسم اليوم
m لعرض الشهر ولكن فى صورة رقمية
M لعرض اسم الشهر
y لعرض اول رقمين من السنه
Y لعرض السنه كاملة

مثال :
لو اردنا طباعة التاريخ فى صورة رقمية

<?php
echo date(“d/m/y”);
?>

سوف يتم طباعة
10/06/19

 

اما لو اردنا طباعة التاريخ فى صورة نصية

<?php
echo date(“D/M/Y);
?>

سوف يتم طباعة
Mon/Jun/2019

ثانيا : لعرض الوقت :
h لعرض الساعة
i لعرض الدقائق
s لعرض الدقائق

مثال :
لو اردنا اردنا طباعة الوقت

<?php
echo date(“h:i:s”);
?>

سوف يتم طباعة
10:30:15