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

السؤال

نشر

السلام عليكم اقوم بتحديث البيانات في جدول people  وجدول employees 

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

<?php
include('header.php');

$employee_id = $_GET['id'];
$sql = "SELECT people.*, employees.* FROM people INNER JOIN employees ON people.id = employees.person_id WHERE people.id = ?";
$stmt = $con->prepare($sql);
$stmt->bind_param("i", $employee_id);
$stmt->execute();
$result = $stmt->get_result();
$employee = $result->fetch_assoc();
?>

<head>
    <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
    <style>
        .rak {
            width: 400px;
            height: 300px;
            font-size: 14px !important;
        }
    </style>
</head>

<div class="col-md-9 pan1">
    <ol class="breadcrumb" style="background-color: #fff; padding: 8px; color: #000; font-size: 16px;">
        <li><a href="student.php">الموظفين</a></li>
        <li class="active">تعديل بيانات الموظف</li>
    </ol>
</div>

<div class="row">
    <div class="col-md-9 pan1">
        <div class="panel" style="color: #000;">
            <div class="panel-body" style="padding: 25px 40px;">
                <form method="POST" enctype="multipart/form-data">
                    <input type="hidden" name="id" value="<?php echo $employee['id']; ?>">
                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>اسم الموظف</label>
                                <input name="name" type="text" class="form-control" value="<?php echo $employee['name']; ?>" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>الرقم الوطني</label>
                                <input name="N_id" type="text" class="form-control" value="<?php echo $employee['N_id']; ?>" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>تاريخ الميلاد</label>
                                <input name="birth_date" type="date" class="form-control" value="<?php echo $employee['birth_date']; ?>" required>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>البلد</label>
                                <input name="country" type="text" class="form-control" value="<?php echo $employee['country']; ?>" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>المدينة</label>
                                <input name="city" type="text" class="form-control" value="<?php echo $employee['city']; ?>" required>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>المنطقة</label>
                                <input name="street_address" type="text" class="form-control" value="<?php echo $employee['street_address']; ?>" required>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>الجنس</label>
                                <select name="gender" class="form-control" required>
                                    <option value="ذكر" <?php echo ($employee['gender'] == 'ذكر') ? 'selected' : ''; ?>>ذكر</option>
                                    <option value="انثي" <?php echo ($employee['gender'] == 'انثي') ? 'selected' : ''; ?>>انثي</option>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>الحالة الاجتماعية</label>
                                <select name="marital_status" class="form-control" required>
                                    <option value="أعزب" <?php echo ($employee['marital_status'] == 'أعزب') ? 'selected' : ''; ?>>أعزب</option>
                                    <option value="متزوج" <?php echo ($employee['marital_status'] == 'متزوج') ? 'selected' : ''; ?>>متزوج</option>
                                    <option value="مطلق" <?php echo ($employee['marital_status'] == 'مطلق') ? 'selected' : ''; ?>>مطلق</option>
                                    <option value="ارمل" <?php echo ($employee['marital_status'] == 'ارمل') ? 'selected' : ''; ?>>ارمل</option>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>البريد الالكتروني</label>
                                <input name="email" type="email" class="form-control" value="<?php echo $employee['email']; ?>">
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>رقم الهاتف</label>
                                <input name="phone" type="text" class="form-control" value="<?php echo $employee['phone']; ?>">
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>نوع التوظيف</label>
                                <select name="type" class="form-control" required>
                                    <option value="تعيين" <?php echo ($employee['type'] == 'تعيين') ? 'selected' : ''; ?>>تعيين</option>
                                    <option value="عقد" <?php echo ($employee['type'] == 'عقد') ? 'selected' : ''; ?>>عقد</option>
                                    <option value="إعارة" <?php echo ($employee['type'] == 'إعارة') ? 'selected' : ''; ?>>إعارة</option>
                                    <option value="ندب" <?php echo ($employee['type'] == 'ندب') ? 'selected' : ''; ?>>ندب</option>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>الدرجة الوظيفية</label>
                                <input name="degree" type="number" class="form-control" value="<?php echo $employee['degree']; ?>">
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>تاريخ الحصول علي الدرجة</label>
                                <input name="degree_date" type="date" class="form-control" value="<?php echo $employee['degree_date']; ?>">
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>حالة الموظف</label>
                                <select name="status" class="form-control" required>
                                    <option value="يعمل" <?php echo ($employee['status'] == 'يعمل') ? 'selected' : ''; ?>>يعمل</option>
                                    <option value="مفصول" <?php echo ($employee['status'] == 'مفصول') ? 'selected' : ''; ?>>مفصول</option>
                                    <option value="مستقيل" <?php echo ($employee['status'] == 'مستقيل') ? 'selected' : ''; ?>>مستقيل</option>
                                    <option value="متقاعد" <?php echo ($employee['status'] == 'متقاعد') ? 'selected' : ''; ?>>متقاعد</option>
                                    <option value="موقوف" <?php echo ($employee['status'] == 'موقوف') ? 'selected' : ''; ?>>موقوف</option>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>تاريخ استحقاق الشهادة</label>
                                <input name="due" type="date" class="form-control" value="<?php echo $employee['due']; ?>">
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>المؤهل في القرار</label>
                                <input name="qualification" type="text" class="form-control" value="<?php echo $employee['qualification']; ?>" placeholder="ادخل اسم المؤهل">
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>تاريخ المباشرة</label>
                                <input name="start_date" type="date" class="form-control" value="<?php echo $employee['start_date']; ?>">
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>رقم القرار</label>
                                <input name="res_num" type="text" class="form-control" value="<?php echo $employee['res_num']; ?>" placeholder="">
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>الإدارة</label>
                                <select name="section_id" id="section_id" class="form-control" onchange="loadSubSections(this.value)" required>
                                    <?php
                                    $sql_sections = "SELECT id, name FROM sub_sections WHERE parent_id IS NULL";
                                    $result_sections = $con->query($sql_sections);
                                    while ($row = $result_sections->fetch_assoc()) {
                                        $selected = ($row['id'] == $employee['section_id']) ? 'selected' : '';
                                        echo '<option value="' . $row['id'] . '" ' . $selected . '>' . $row['name'] . '</option>';
                                    }
                                    ?>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>القسم</label>
                                <select name="sub_section_id" id="sub_section_id" class="form-control" required>
                                    <option value="">اختر قسم</option>
                                    <?php
                                    $sql_sub_sections = "SELECT id, name FROM sub_sections WHERE parent_id = ?";
                                    $stmt_sub_sections = $con->prepare($sql_sub_sections);
                                    $stmt_sub_sections->bind_param("i", $employee['section_id']);
                                    $stmt_sub_sections->execute();
                                    $result_sub_sections = $stmt_sub_sections->get_result();
                                    while ($row = $result_sub_sections->fetch_assoc()) {
                                        $selected = ($row['id'] == $employee['sub_section_id']) ? 'selected' : '';
                                        echo '<option value="' . $row['id'] . '" ' . $selected . '>' . $row['name'] . '</option>';
                                    }
                                    ?>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>التخصص</label>
                                <select name="specialties_id" id="specialties_id" class="form-control" required>
                                    <?php
                                    // استعلام لجلب التخصصات
                                    $sql_specialties = "SELECT id, name FROM specialties";
                                    $result_specialties = $con->query($sql_specialties);
                                    
                                    // عرض خيارات التخصصات
                                    while ($row = $result_specialties->fetch_assoc()) {
                                        $selected = ($row['id'] == $employee['specialty_id']) ? 'selected' : '';
                                        echo '<option value="' . $row['id'] . '" ' . $selected . '>' . $row['name'] . '</option>';
                                    }
                                    ?>
                                </select>
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>اسم المصرف</label>
                                <select name="bank_id" id="bank_id" class="form-control" required>
                                    <?php
                                    $sql_banks = "SELECT id, name FROM banks";
                                    $result_banks = $con->query($sql_banks);
                                    while ($row = $result_banks->fetch_assoc()) {
                                        $selected = ($row['id'] == $employee['bank_id']) ? 'selected' : '';
                                        echo '<option value="' . $row['id'] . '" ' . $selected . '>' . $row['name'] . '</option>';
                                    }
                                    ?>
                                </select>
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>فرع المصرف</label>
                                <input type="text" name="branch" class="form-control" value="<?php echo $employee['branch']; ?>">
                            </div>
                        </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>رقم الحساب</label>
                                <input type="text" name="account_num" class="form-control" value="<?php echo $employee['account_num']; ?>">
                            </div>
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-4">
                            <div class="form-group">
                                <button name="submit" type="submit" class="btn btn-primary">تحديث <span class="ion-android-update"></span></button>
                                <button type="reset" class="btn btn-danger">إلغاء <span class="ion-android-delete"></span></button>
                            </div>
                        </div>
                    </div>
                </form>

                <?php
                if ($_SERVER["REQUEST_METHOD"] == "POST") {
                    $id = $_POST['id'];
                    $name = $_POST['name'];
                    $N_id = $_POST['N_id'];
                    $birth_date = $_POST['birth_date'];
                    $country = $_POST['country'];
                    $city = $_POST['city'];
                    $street_address = $_POST['street_address'];
                    $gender = $_POST['gender'];
                    $marital_status = $_POST['marital_status'];
                    $email = $_POST['email'];
                    $phone = $_POST['phone'];
                    $type = $_POST['type'];
                    $degree = $_POST['degree'];
                    $degree_date = $_POST['degree_date'];
                    $status = $_POST['status'];
                    $due = $_POST['due'];
                    $qualification = $_POST['qualification'];
                    $start_date = $_POST['start_date'];
                    $res_num = $_POST['res_num'];
                    $section_id = $_POST['section_id'];
                    $sub_section_id = $_POST['sub_section_id'];
                    $specialties_id = $_POST['specialties_id'];
                    $bank_id = $_POST['bank_id'];
                    $branch = $_POST['branch'];
                    $account_num = $_POST['account_num'];

                    // تحديث بيانات الشخص
                    $sql_update = "UPDATE people SET name = ?, N_id = ?, birth_date = ?, country = ?, city = ?, street_address = ?, gender = ?, marital_status = ?, email = ?, phone = ? WHERE id = ?";
                    $stmt_update = $con->prepare($sql_update);
                    $stmt_update->bind_param("ssssssssssi", $name, $N_id, $birth_date, $country, $city, $street_address, $gender, $marital_status, $email, $phone, $id);

                    if ($stmt_update->execute()) {
                        // تحديث بيانات الموظف
                        $sql_update_employee = "UPDATE employees SET person_id = ?, `type` = ?, degree = ?, degree_date = ?, status = ?, due = ?, qualification = ?, start_date = ?, res_num = ?, section_id = ?, sub_section_id = ?, specialty_id = ?, bank_id = ?, branch = ?, account_num = ? WHERE person_id = ?";

                        $stmt_update_employee = $con->prepare($sql_update_employee);
                        
                        // تأكد من أن لديك 16 متغيرًا هنا
                        $stmt_update_employee->bind_param("ssssssssssssssss", $person_id, $type, $degree, $degree_date, $status, $due, $qualification, $start_date, $res_num, $section_id, $sub_section_id, $specialties_id, $bank_id, $branch, $account_num, $id);

                        if ($stmt_update_employee->execute()) {
                            echo "<script>
                                Swal.fire({
                                    title: 'رسالة تأكيد',
                                    text: 'تم تحديث بيانات الموظف بنجاح!',
                                    icon: 'success',
                                    customClass: 'rak',
                                });
                            </script>";
                            echo '<meta http-equiv="refresh" content="2;url=people.php" />';
                        } else {
                            echo "خطأ في تحديث بيانات الموظف: " . $stmt_update_employee->error;
                        }
                    } else {
                        echo "خطأ في تحديث البيانات: " . $stmt_update->error;
                    }
                }
                ?>
            </div>
        </div>
    </div>
</div>

<script>
function loadSubSections(parentId) {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "get_sub_sections.php?parent_id=" + parentId, true);
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4 && xhr.status == 200) {
            document.getElementById("sub_section_id").innerHTML = xhr.responseText;
        }
    };
    xhr.send();
}
</script>

<?php
include('footer.php');
?>

 

قمت بحل مشكلة 

Recommended Posts

  • 0
نشر

عليك تصحيح جملة UPDATE بإزالة person_id = ?, من الجزء SET.

كالتالي:

$sql_update_employee = "UPDATE employees SET 
    `type` = ?, degree = ?, degree_date = ?, status = ?, due = ?, 
    qualification = ?, start_date = ?, res_num = ?, section_id = ?, 
    sub_section_id = ?, specialty_id = ?, bank_id = ?, branch = ?, 
    account_num = ? 
    WHERE person_id = ?"; 

ويجب وجود عمود باسم specialty_id تفقده في قاعدة البيانات.

ثم تصحيح استدعاء bind_param لجدول employees باستخدم 15 متغيرًا مطابقًا لعلامات الاستفهام الـ 15  في الاستعلام السابق مع كتابة $id للمتغير الأخير الخاص بجملة WHERE.

مع استخدم الأنواع الصحيحة وهي i للأرقام الصحيحة، s للسلاسل النصية، d للأرقام العشرية، تفقد أنواع الأعمدة في قاعدة البيانات أولاً ثم عدل الاستعلام التالي:

$specialty_id = $_POST['specialties_id']; 


$sql_update_employee = "UPDATE employees SET 
    `type` = ?, degree = ?, degree_date = ?, status = ?, due = ?, 
    qualification = ?, start_date = ?, res_num = ?, section_id = ?, 
    sub_section_id = ?, specialty_id = ?, bank_id = ?, branch = ?, 
    account_num = ? 
    WHERE person_id = ?"; 

$stmt_update_employee = $con->prepare($sql_update_employee);

$types = "sissssssiiiissi"; // 15 حرفًا
$stmt_update_employee->bind_param(
    $types, 
    $type, $degree, $degree_date, $status, $due, $qualification, $start_date, $res_num, 
    $section_id, $sub_section_id, $specialty_id,
    $bank_id, $branch, $account_num, 
    $id 
); 

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...