اذهب إلى المحتوى
  • 0

إضافة مستخدمين إلى جداول مختلفة في قاعدة البيانات باستخدام لغة PHP

Sara Mohammed9

السؤال

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

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

في البداية يجب إنشاء اتصال بقاعدة البيانات باستخدام مكتبة PDO وتوفير معلومات الاتصال بقاعدة البيانات مثل اسم المستخدم وكلمة المرور واسم قاعدة البيانات ومضيف قاعدة البيانات.

$servername = "اسم_الخادم";
$username = "اسم_المستخدم";
$password = "كلمة_المرور";
$dbname = "اسم_قاعدة_البيانات";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "تم الاتصال بنجاح";
} catch(PDOException $e) {
    echo "فشل الاتصال: " . $e->getMessage();
}

ثم تحديد الجداول التي تحتاج إلى إجراء الإضافة إليها، ولنفترض وجود جدولين: "users" و "doctors".

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

$username = $_POST['اسم_المستخدم'];
$password = $_POST['كلمة_المرور'];
$role = $_POST['الدور'];

الآن لنجري عملية الإدخال في كل جدول بالإعتماد على الاستعلامات المعدة مسبقًا (Prepared Statements) لتأمين قاعدة البيانات من هجمات SQL Injection وتسهيل عملية الإدخال.

try {
    // إضافة إلى جدول المستخدمين
    $stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
    $stmt->bindParam(':username', $username);
    $stmt->bindParam(':password', $password);
    $stmt->execute();

    // إضافة إلى جدول الأطباء إذا كان الدور طبيبًا
    if ($role == 'طبيب') {
        $stmt = $conn->prepare("INSERT INTO doctors (username) VALUES (:username)");
        $stmt->bindParam(':username', $username);
        $stmt->execute();
    }

    echo "تمت الإضافة بنجاح";
} catch(PDOException $e) {
    echo "حدث خطأ أثناء الإضافة: " . $e->getMessage();
}

ولا تنسي إغلاق الإتصال بقاعدة البيانات بعد الانتهاء من العمليات.

$conn = null; // إغلاق الاتصال بقاعدة البيانات

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

سؤالك عام جدا، ويخضع للكثير من المتغيرات الأخرى. ولكن فيما يلي توجيه عام للقيام بذلك:

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

فيما يلي مثال عملي: 

<?php
// استلام بيانات المستخدم من النموذج
$userType = $_POST['user_type'];
$username = $_POST['username'];
$password = $_POST['password'];

// الاتصال بقاعدة البيانات
$conn = mysqli_connect("localhost", "username", "password", "database_name");
if (!$conn) {
    die("فشل الاتصال بقاعدة البيانات: " . mysqli_connect_error());
}

// إجراء التحقق من نوع المستخدم والإضافة إلى الجداول المناسبة
if ($userType == 'doctor') {
    // إضافة الطبيب إلى جدول الأطباء
    $query = "INSERT INTO doctors (username, password) VALUES ('$username', '$password')";
    $result = mysqli_query($conn, $query);

    // إضافة الطبيب إلى جدول المستخدمين
    $query = "INSERT INTO users (username, password, user_type) VALUES ('$username', '$password', 'doctor')";
    $result = mysqli_query($conn, $query);
} elseif ($userType == 'patient') {
    // إضافة المريض إلى جدول المرضى
    $query = "INSERT INTO patients (username, password) VALUES ('$username', '$password')";
    $result = mysqli_query($conn, $query);

    // إضافة المريض إلى جدول المستخدمين
    $query = "INSERT INTO users (username, password, user_type) VALUES ('$username', '$password', 'patient')";
    $result = mysqli_query($conn, $query);
}

// التحقق من نتيجة الإضافة
if ($result) {
    echo "تمت عملية الإضافة بنجاح!";
} else {
    echo "حدث خطأ أثناء الإضافة.";
}

// إغلاق اتصال قاعدة البيانات
mysqli_close($conn);
?>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لإضافة سجل جديد إلى جدول المستخدمين بناءً على نوع المستخدم (مريض أو طبيب)، يمكنك استخدام لغة PHP لتنفيذ ذلك. هنا خطوات عامة للقيام بذلك:

قم بتنفيذ استعلام INSERT لإضافة سجل في جدول المستخدمين. يمكنك استخدام استعلام SQL مثل التالي:

INSERT INTO users (username, password, role) VALUES ('$username', '$password', '$role');

حيث $username و $password هي قيم اسم المستخدم وكلمة المرور المراد إدخالها، و $role هو دور المستخدم (مريض أو طبيب).

قم بتنفيذ استعلام INSERT آخر لإضافة سجل في الجدول المناسب بناءً على نوع المستخدم. على سبيل المثال، إذا كان المستخدم مريضًا، فيمكنك استخدام استعلام SQL التالي:

INSERT INTO patients (user_id, patient_name, patient_info) VALUES (LAST_INSERT_ID(), '$patientName', '$patientInfo');

وإذا كان المستخدم طبيبًا، فيمكنك استخدام استعلام SQL مماثل لإضافته إلى جدول الأطباء.

تأكد من استبدال القيم المؤقتة مثل $username و $password و $role و $patientName و $patientInfo بالقيم الفعلية التي تم جمعها من نموذج الإدخال الخاص بك أو أي مصدر آخر.

قم بالتعامل مع أي رسائل خطأ تحدث خلال تنفيذ استعلامات INSERT. يمكنك استخدام دالة mysqli_error() للحصول على أي رسائل خطأ ومعالجتها بشكل مناسب.

من الضروري أيضًا التحقق من صحة البيانات المدخلة وتطبيق إجراءات الحماية المناسبة لمنع هجمات الحقن (Injection attacks)، مثل استخدام تعبيرات استعلام محمية (Prepared statements) أو تهيئة وتنظيف البيانات المدخلة (Input sanitization) قبل استخدامها في استعلامات SQL.

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

 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...