Android Webservices

Android Webservices بالعربية – الدرس الخامس

فى الدرس السابق Android Webservices بالعربية – الدرس الرابع تحدثنا عن إنشاء جدول فى قاعدة بيانات الـ mysql والقينا نظرة على phpMyAdmin وتعلمنا كيفية إدخال البيانات الى الجدول من خلال ملف php وكذلك استدعاء البيانات وطبعها على الشاشة  وبعد نشر التدوينة بـ 10 ساعات قام المجرم ” أبو موته ” بإرسال رسالة تهديد لهنديوير  وهو أحد الشخصيات  الخيالية الى سجلناها فى الجدول السابق للمستخدمين فقد سجلنا بياناته وهى اسمه ورقمه السرى وعنوانه  وايميله  والتى بسببها اقتحمنا خصوصيته وهو  لذلك  يريد منا حذف هذه البيانات فورا  فهيا بنا نتعلم حذف البيانات

 

حذف البيانات 

لنفترض انا نريد حذف بيانات المجرم ” أبو موته ” والتى هى موجوده فى جدول المستخدمين

phpmyadmin user

 

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

DELETE FROM اسم الجدول WHERE  القيمة= اسم العمود;

userstable

وتطبيقا على الكود السابق سيكون أمر sql كالتالى :

DELETE FROM users WHERE  name='Abo Muoota';

 

سنقوم بتنفيذ امر الـ sql من خلال ملف php جديد سننشئه الان باسم deleteuser.php وسيكون المحتوى كالتالى :

php file

كل ما فى الأمر اننا هذه المرة قمنا بإنشاء $deletemembersql يحتوى على أمر الحذف وقمنا بتنفيذه فى كائن dbconnect$ قم بالحفظ ورفع الملف للاستضافة

ملحوظة : اذا كانت هناك بعض الاشياء الغامضة او التى لا تفهمها  فى ملف php السابق قم بالرجوع للدروس السابقة فى السلسة لقد قمنا بشرح الموضوع بالتفصيل .

سنقوم الان بمناداة الملف عبر المتصفح  وستجد ان الـ query السابق الخاص بحذف المستخدم  تم بنجاح

user deleted successfully

سوف نلقى نظرة الان من phpMyAdmin  لنجد ان العضو Abo Muoota تم حذفه من الجدول .

table phpmyadmin

وهذه هى الطريقة المتبعه عند حذف البيانات ولاحظ أننا فى المثال السابق حذفنا العضو بدلالة اسمه WHERE  name= ‘Abo Muoota ‘ ويمكننا ايضا الحذف بدلالة أى قيمة لاى عمود مثال

√ حذف العضو عندما يكون عنوانه كذا  WHERE adress=’value

√ حذف العضو المسجل بتاريخ كذا WHERE registertime=’value

√ حذف العضو الذى ايميله كذا WHERE email=’value

حيث value هى القيمة

وقد يتبادر الى ذهنك سؤال :

ماذا ان كان هناك أكثر من عضو له نفس العنوان وقمت بتنفيذ امر الحذف مثلا  هكذا DELETE FROM users WHERE adress=’Cairo’ وكان هناك مثلا 100 عضو الـ adress الخاص بهم هو Cairo ؟

الاجابة سيتم حذف الـ 100عضو جميعا .

ملحوظة يمكن استخدام الـ WHERE مع الـ SELECT ايضا فى الدرس السابق لتحديد الاعضاء الساكنين فى عنوان معين مثلا او الاعضاء الذين باسوردهم باسورد معين الخ .. 

تحديث البيانات 

مثلما قمنا بالتحديد SELECT و الادخال INSERT فى الدرس السابق وقمنا بالـ حذف  DELETE فى هذا الدرس

يمكننا ايضا التحديث UPDATE   وذلك باستخدام الامر التالى

UPDATE اسم الجدول
SET القيمة = اسم العمود 
WHERE االقيمة = اسم العمود ;

فلنفترض اننا نريد تحديث بيانات Adele فى جدول الـ users  ونريد تغيير الايميل hello@otherside.com الى ايميل اخر وليكن contact@adele.com

سيكون أمر الـ SQL كالتالى :

UPDATE users
SET email='contact@adele.com'
WHERE name ='Adele';

وسنقوم بعمل ملف php الخاص بـالتحديث وسنسميه updateuser.php  ونضع به الامر السابق وسيكون كالتالى :

php file update users

نقوم بالحفظ ورفع الملف واستدعاء الرابط عبر المتصفح كالتالى :

user updated sucessfully

وإذا ذهبت الى الجدول عبر phpMyAdmin ستجد أن التعديل تم وان الايميل الخاص بـ Adele تم تغييره .

لكن فى كل العمليات السابقة التى قمنا بها سواء SELECT و INSERT فى الدرس السابق و DELETE و UPDATE فى الدرس الحالى نعتمد على وضع القيم فى الملف نفسه ثم نقوم برفعه الى الاستضافة لكن الامور لا تتم بهذه الطريقة وقد كانت مجرد امثلة فأنا اريد عندما احذف المستخدم أن استدعى ملف الـ php وأن اعطيه القيمة وقت الاستدعاء ليقوم بحذف العضو مثلا وعند التحديث اريد ان اعطيه القيمة وقت الاستدعاء لذلك سنتعرف على طرق تمرير البيانات الى php

إرسال القيم  إلى ملف  PHP  

يوجد طريقتين لأقوم بتمرير معلومة أو متغير لملف PHP طريقة الـ POST وطريقة الـ GET  لن نخوض فى تفاصيل كثيرة بخصوص الموضوع  وربما يكون هناك مقال منفصل عن الطريقتين قريبا لكى لا نخلط الامور فهذه السلسة تخص الـ WebServices والاندرويد فقط  لكن سنعلمك كيفية تمرير معلومة بواسطة الـ GET وبواسطة الـ POST فهما متشابهتين فى كتابة الكود داخل php ولكى تستطيع الاتصال بملف php وتمرير المعلومات اليه

وسوف نقوم بالرجوع الى ملف تسجيل مستخدم جديد والتعديل عليه لجعله يستقبل المعلومات  وسنستخدم طريقة الـ GET

الملف العادى

insertuser before

الملف بعد التعديل

insert user after

شرح الكود السابق :

استخدمنا الميثود isset وهى تعود بـ true ازاى تم عمل set اى ارسال للقيم التالية username و password و email و adress بطريقة الـ GET حيث $_GET[‘القيمة’] يستقبل القيمة عند استدعاء ملف الـ php فى المتصفح لكل قيمة وقمنا باستقبال قيمة username وemail و password و adress فى متغيرات بنفس الاسم وقمنا بوضع المتغيرات فى أمر الـ SQL كما هو مظلل فى الصورة السابقة .

الان قم بحفظ الملف ورفعه للاستضافة

 نريد الان استدعاء ملف الـ php فى المتصفح لكن لا نريد استدعاءه وحسب بل نريد ايضا ارسال القيم وبما أننا حددنا الطريق GET فى الكود السابق سوف نقوم الان باستدعاء الملف مع ارسال القيم كالتالى :

بعد تجربة الكود السابق اتضح أنى نسيت سيمى كولن واعطانى Error لن أخبرك اين نسيتها قم بالبحث عن الـسيمى كولن المفقودة وأكملها بنفسك 😛

حسنا بعد اضافة السيمى كولن الان الكود يعمل وعندما تستدعى الملف فى المتصفح  ستجد النتيجة

no parameters

وهذا يعنى أن حالة الـ if isset لم تتحقق حيث قمنا باستدعاء الملف فقط دون ارسال البيانات

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

وذلك بعد الانتهاء من كتابة الرابط لن نضغط على زر enter لاستدعاءها سنقوم بكتابة ? بعد الرابط وارسال القيم على هيئة Key Value وفصل كل key value عن الاخرى بـ &  كالتالى :

http://developerhendy.16mb.com/insertuser.php?username=Ahmed&password=123123&email=ahmed@hendiware.16mb.com&adress=Egypt

send parameters with get

حيث ان كل Key يجب ان تكون هى التى حددناها فى ملف php فى $_GET كالتالى :

name and value

سنذهب الان لـ phpMyAdmin لنرى ان العملية تم تسجيلها بنجاح

record in phpmyAdmin

هكذا هى طريقة الإرسال باستخدام GET  أما بالنسبة لـ POST فبالنسبة لكتابتها ككود يمكنك استبدال كل $_GET فى الكود السابق بـ $_POST وبالتالى الان لديك ملف php يستخدم طريقة POST لاستقبال القيم أم الاستخدام الفعلى  فلا تسطيع استخدامها بهذا الشكل من المصتفح مثل GET فكتابة ? ثم القيم على هيئة Key Value خاصة بالـ GET  لأن ارسال الطلب عند استدعاء الملف باستخدام GET يتم ارسال القيم فى الـ header اما فى POST يتم ارسال القيم فى body وهو موضوع يمكنك تجاهله الان وفيما بعد سنقوم بعمل مقال عن الـ HTTP Request (يبدوا  أننا سنكتب الكثير من المقالات 😀 )

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

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

أبو موته الذى قمنا بحذف عضويته كنا نعنى به الشخص فى هذا الفيديو 

السابق
Android Webservices بالعربية – الدرس الرابع
التالي
سلسلة Android Sensors بالعربية الدرس الثانى : LightSensor

12 تعليق

أضف تعليقا

  1. Ahmed Ali قال:

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

  2. Mahmoud Abdelwahab قال:

    تم تطبيق الدرس ^^ ربنا يباركلك والله شرح وافى شامل وحلو جدااا
    منتظر باقى الدروس بفارغ الصبر …………………. 😀 😀 😀 :v

  3. ghadeer قال:

    شكررررا ع الدرس الجميل
    حاولت اطبق اللي تعلمتو ع delete والاوت بت (Connection Success !User Deleted Successfuly:>)
    لكن لم اعمل get users اكتشف انو م حذف اي شي من قاعدة البيانات ><"
    ممكن تساعدني ف دي المشكلة..
    [url=http://www.up-00.com/][img]http://store2.up-00.com/2016-03/145703861462311.png[/img][/url][URL="http://www.up-00.com/"%5D%5B/URL%5D

    1. Hendiware قال:

      مرحبا ghadeer ،
      الـ output يكون !User Deleted Successfuly لانه تم تنفيذ الـ query لكن الـ query فى الصورة خطأ لأنك وضعتى اسم العمود بين علامة التنصيص يجب أن يكون اسم العمود بدون علامات تنصيص القيمة فقط هى التى تكون بين علامة التنصيص
      the err
      قومى بحذفهم وسيعمل الكود .

      1. ghadeer قال:

        شكررررا لك اشتغل الكود

  4. elsayed قال:

    مشاء الله شرح جميل جدااااااااا برنا يبارك فيك ويزيدك يارب وشكرا علي شرحك الجميل

  5. ناجي قال:

    في echo الأخيرة
    بارك الله فيك

  6. mohammed قال:

    كل مقالاتك حلوة

  7. معاذ قال:

    كيف بقدر احمل الكود وكيف بقدر اجيب كود الاندرويد لل update??

  8. sayed قال:

    query($adduser) === TRUE){
    echo “user is added”;
    }
    else {
    echo “some thing wrong”;
    }
    }
    else{
    echo “no parameters”;
    } انا كتبت الكود ولما باجى انفذه بيجبلى الجمله دى
    query($adduser) === TRUE){ echo “user is added”; } else { echo “some thing wrong”; } } else{ echo “no parameters”; }
    ايه الحل؟

    1. sayed قال:

      اسف كنت كاتب امتداد ملف php خطأ شكرا لكم على هذا الشرح الرائع بارك الله فيكم

اترك تعليقاً

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.