راکت
حل شده

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

6 پاسخ

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

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

ثبت پرسش جدید

پاسخ‌ها

6
Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

بهترین پاسخ

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

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

تخصص: برنامه نویس

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

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

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

شاید پاسخ شما همین‌جا باشد

Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

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

Morteza Khodarahmi
Morteza Khodarahmi
@mrkhodarahmii

تخصص: Backend Developer

@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

تخصص: برنامه نویس

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

        $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);

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

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