Morteza Khodarahmi
3 سال پیش توسط Morteza Khodarahmi مطرح شد
6 پاسخ

رکورد همزمان چند row در دیتابیس

سلام دوستان
یه سیستم حضور غیاب دارم که میخوام همزمان حضور غیاب چند نفر رو داخل دیتا بیس ذخیره کنم
دیتام هم به این صورته
توضیح تصویر رو وارد کنید

اینجا من دو تا یوزر دارم ولی ممکن 100 یا 200 تا یوزر باشن که باید هم زمان دیتا ذخیره شه
این یه جدول pilot نیست یه مدل مجزا داره به دلایلی از روابط استفاده نکردم
ممنون میشم راهنمایی کنید


ثبت پرسش جدید
Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش مطرح شد
0

من از این جواب گرفتم
ممنون🙏🙏

foreach ($request->user_id as $index => $user_id) {
    \DB::table("table_name")->insert([
        "user_id" => $request->user_id[$index],
        "course_id" => $request->course_id[$index],
        "jalasat" => $request->jalasat[$index],
        "date" => $request->date[$index],
        "time" => $request->time[$index],
        "status" => $request->status[$index],
    ]);
}

مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش مطرح شد
0

جدول مورد نظر نمیدونم چه ردیفهایی داره، ولی میتونید دیتایی که باید insert بشه رو داخل یک آرایه ذخیره کنید و در نهایت کلش رو insert کنید


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش مطرح شد
0

برای هریوزری که حضور میزنه یک ردیف ایجاد کن، این کار شما صحیح نیست!


Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش مطرح شد
0

@juza66
آخه خود یوزر حضور نمیزنه
استاد قراره حضور بزنه،یه لیستی از دانشجو ها رو نمایش میدم انتخاب میکنه کدوم حاضرن کدوم غایب!!


Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش مطرح شد
0

@juza66
دارم سعی میکنم با foreach این کارو انجام بدم ولی خطا میده


        $usersId = $request['user_id'];
        $teachers_id = $request['teacher_id'];
        $courses_id = $request['course_id'];
        $status = $request['status'];
        $date = $request['date'];
        $time = $request['time'];
        $jalasat = $request['jalasat'];

        try {

            foreach ($usersId as $userId) {
               $savedata = Attendance::create(
                    [
                        'user_id' => $userId,
                        'teacher_id' => $teachers_id,
                        'course_id' => $courses_id,
                        'status' => $status,
                        'date' => $date,
                        'time' => $time,
                        'jalasat' => $jalasat
                    ]
                );

خطا:Array to string conversion


مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش مطرح شد
1

گاهي پيش مياد نياز به اين جور ثبت ديتا داشته باشيد
اينكه در داخل حلقه اين كار رو انجام بديد اصلا بهينه نيست و بسيار هم كند ميشه
با کد زیر بهینه تر اجرا میشه

        $usersId = $request['user_id'];
        $teachers_id = $request['teacher_id'];
        $courses_id = $request['course_id'];
        $status = $request['status'];
        $date = $request['date'];
        $time = $request['time'];
        $jalasat = $request['jalasat'];

        try {
            $insert_array=[];
            foreach ($usersId as $userId) {
               $insert_array[] = [
                        'user_id' => $userId,
                        'teacher_id' => $teachers_id,
                        'course_id' => $courses_id,
                        'status' => $status,
                        'date' => $date,
                        'time' => $time,
                        'jalasat' => $jalasat
                    ];
            }
            Attendance::insert($insert_array);

Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش مطرح شد
0

من از این جواب گرفتم
ممنون🙏🙏

foreach ($request->user_id as $index => $user_id) {
    \DB::table("table_name")->insert([
        "user_id" => $request->user_id[$index],
        "course_id" => $request->course_id[$index],
        "jalasat" => $request->jalasat[$index],
        "date" => $request->date[$index],
        "time" => $request->time[$index],
        "status" => $request->status[$index],
    ]);
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام