كيف اسوي رسائل خاصة php mysqli

احمد • منذ 5 سنوات

السلام عليكم 

ابغى اعرف آلية عمل رسائل خاصه في الموقع 

يعني كيف احدد المرسل والمستقبل والجدول كيف بيكون عضو 1 وعضو 2  مافهمت صراحه اتمنى المساعده 

كلمات دليلية: php

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (1)

عمار الخوالدة • منذ 5 سنوات

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

 

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

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

  1. العضو المرسل للرسالة
  2. العضو المستقبل للرسالة

لاحظ أن الاثنين اعضاء في الموقع، باالتالي من البديهي أن لديك جدول باسم users مثلا، يخزن بيانات كل عضو، ففعليا، العضو هو عبارة عن صف أو record في جدول في قاعدة البيانات.

 

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

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

 

 

هكذا يمكن للمرسل ان يحدد المستقبل، وأن يحدد نص الرسالة.

 

الآن لننتقل للمستقبل، كيف يمكنه الاستفادة من الميزة؟ يمكن مثلا ان يدخل صفحة ليرى الرسائل التي وصلته.

 

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

المفروض ان تكون الطريقة واضحة الآن، فيجب تخزين الرسالة عندما يضغط المستخدم 1 على ارسال، حتى يتمكن المستخدم 2 من قراءتها في وقت لاحق. بالتالي نحن بحاجة لتخزين بيانات الرسالة في قاعدة البيانات، وكما اتفقنا، الرسالة تحتوي على نص الرسالة، وعلى المستقبل، كيف سنخزن "المستقبل"؟ بالطبع باستخدام العلاقات، سنخزن الـ id الخاص بالمستخدم 2 كـ foreign key في الجدول.

 

وعندما يدخل المستخدم 2 الى الصفحة الخاصة به سيتم جلب الرسائل المرتبطة به وعرضها على الصفحة.

 

تابع هذه السلسلة على اليوتيوب، ستفيدك في تحليل المشاكل وايجاد الحلول لها:

https://www.youtube.com/playlist?list=PL04E81BB4A73693D1

 

احمد: كل شيء تمااام . بس انا ابغى مكان المستقبل يوضع تلقائيا . يعني لمن ادخل بروفايل شخص معين اضغط ارسال رسالة ومكان المستقبل يكتب تلقائيا اتمنى فهمتني وشكرا لك

عمار الخوالدة: نعم لا توجد مشكلة، عليك فقط عند فتح الصفحة ارسال متغير من php يحتوي على بروفايل الشخص، وادخاله في input مخفي، الفكرة نفسها، حاول البدء بها وان واجهتك مشكلة فاطرح سؤالا هنا.

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !