قمت ببرمجة موقع ووضعت فيه ان المستخدم يستطيع ان يضع اميله والباسورد ويكتب كومنت لنا انا مبتدئ لا ادري كم جدول احتاج في database in mysql ولازلت لا اعرف php لكن لدي وقت قصير للتعلم يقدر بأسبوع لسي هدفي التعلم الان لأنني سوف استعرض المشروع وبعدها في الوقت اخر اتعلم ارجو ان تفيدوني مادا افعل ادري ان chat gbt يستطيع ان يعطيني الكثير من الاكواد الجاهزة لكن اريد ان اعرف انا مادا افعل خطوة بخطوة
اريد الباك اند لتسجيل الدخول ووضع تعليق
يجب تعلم أساسيات PHP وSQL خلال تلك الفترة، حتى تستطيع شرح الأمر بشكل يوضح أنك مستوعب على الأقل، وليس حفظ وصف للمشروع وسرده، حيث ستحدث مشكلة في حال تم سؤالك عن الخطوات ولماذا قمت بأمر معين.
في اليوم الأول والثاني قم بالتالي:
أولاً يجب تهيئة البيئة للتطوير على نظام، وذلك بتثبيت بيئة تطوير وهي Laragon وستوفر لك PHP وmySQL وخادم Apache وتقنيات أخرى بشكل جاهز.
بعد التثبيت قم بتشغيل Laragon بالضغط على start ثم انقر بزر الفأرة الأيمن على واجهة البرنامج واختر mysql ثم اختر phpMyAdmin وهي أداة لإدارة قواعد البيانات ومن خلال تستطيع إنشاء الجداول واستعراض البيانات والتعديل وخلافه، بدلاً من كتابة كود SQL.
الآن قبل أي شيء، يجب تعلم أساسيات PHP وهي التالي:
- كيفية كتابة كود PHP (علامات <?php ... ?>).
- المتغيرات $variableName.
- أنواع البيانات الأساسية String, Integer, Boolean.
- الـ Arrays.
- الشروط if, else, elseif.
- الحلقات التكرارية for, while.
- الدوال function.
- كيف يستقبل PHP البيانات من نماذج HTML أي متغيرات $_POST أو $_GET.
- دالة echo أو print لعرض المخرجات.
ثم بعد ذلك في اليوم الثالث:
ستقوم بإنشاء قاعدة البيانات والجداول وذلك من خلال phpMyAdmin، تستطيع رؤية شرح على اليوتيوب لكيفية استخدامها ومن المفترض في كورسات PHP ستجد أنه يتم استخدامها في دروس قواعد البيانات، ويوجد كورسات مجانية كثيرة لـ PHP.
أنشئ قاعدة بيانات جديدة، سمّها php_basics
وداخلها أنشئ الجدولين users و comments بالتصميم التالي عن طريق واجهة phpMyAdmin:
جدول المستخدمين users لتخزين معلومات كل مستخدم سيحتوي على الأعمدة التالية:
- user_id: رقم تعريفي فريد لكل مستخدم (خصائص العمود هي Primary Key, INT, AUTO_INCREMENT).
- email: البريد الإلكتروني للمستخدم (خصائص العمود هي VARCHAR, UNIQUE - لمنع تكرار الإيميلات).
- password_hash: مهم جداً: لا تخزن كلمة المرور كما هي أبداً، الصحيح أننا نخزن hash بمعنى تجزئة لكلمة المرور بدلاً من ذلك لأسباب أمنية (خصائص العمود هي VARCHAR).
- created_at: تاريخ ووقت إنشاء الحساب (خصائص العمود هي TIMESTAMP, default CURRENT_TIMESTAMP) وهو عمود اختياري لكن مفيد.
جدول التعليقات comments لتخزين التعليقات وربطها بالمستخدم الذي كتبها، وسيحتوي على الأعمدة:
- comment_id: رقم تعريفي فريد لكل تعليق (Primary Key, INT, AUTO_INCREMENT).
- user_id: رقم المستخدم الذي كتب التعليق (Foreign Key referencing users.user_id, INT). هذا هو الرابط بين الجدولين.
- comment_text: نص التعليق نفسه (TEXT or LONGTEXT).
- created_at: تاريخ ووقت كتابة التعليق (TIMESTAMP, default CURRENT_TIMESTAMP).
وللتوضيح استخدمنا جدولين، لأنّ المستخدم الواحد يستطيع أن يكتب عدة تعليقات، ولو وضعت كل شيء في جدول واحد، ستكرر الإيميل والباسورد مع كل تعليق، وذلك سيء جداً للتخزين والأداء والأمان.
أيضًا فصل المستخدمين عن التعليقات يجعل إدارة البيانات أسهل، فمثلاً تحديث إيميل المستخدم مرة واحدة فقط في حقل واحد فقط أي في مكان واحد فقط.
أو تستطيع إنشاء الجداول بكتابة أوامر SQL التالية في تبويب SQL في phpMyAdmin:
CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE comments ( comment_id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, comment_text TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE -- إذا حذف المستخدم، تحذف تعليقاته );
باقي الأمور ستصبح سهلة بعد تعلم الأساسيات ولديك الوقت لذلك، في حال لديك تعامل سابق مع البرمجة، لو أردت شرح خطوات أخرى أخبرني.
التعليقات