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

نمایش یک آرایه در یک ستون از جدول دیتابیس

سلام
دوستان عزیز قصد دارم در کوئری select خودم که از 3 تا Table با رابطه های بین شون یکی از ستونها خودش یک آرایه باشه

سه تا جدول داریم با نامهای زیر :
users
posts
posts_media
در این جداول به ترتیب اطلاعات کاربران ، پست ها و رسانه های تصویری و عکسهای یک پست قرار میگیرند.

من میخوام یک کوئری داشته باشم که لیست پست ها رو برای یک اپلیکیشن موبایل در قالب json برگردونم که در بحث json هیچ مشکلی وجود ندارد و سئوال اینجاست که چطور میتونم تصاویر یک پست رو که میتونه چند تا باشه و در جدول posts_media ذخیره شده اند رو در یک ستون و بصورت آرایه ای در کنار نام یوزر از جدول users و کپشن پست از جدول posts بر گردونم

تقریبا چیزی که من مد نظرم هست شبیه به خروجی زیر هست :

{
    "post_id": 29,
    "avatar": "images/avatar/avatar-no.svg",
    "fname": "علی",
    "lname": "محمدی",
    "caption": "دوستان امروز شمال هستیم 
    "files":
    [
        {
            "file": "web1.mp4",
        }
        ,
        {
            "file": "web2.mp4",
        }

    ]
},
{
    "post_id": 30,
    "avatar": "images/avatar/avatar-no.svg",
    "fname": "حسین",
    "lname": "موسوی",
    "caption": "دوستان امروز بندر انذلی هستیم جاتون خیلی خالیه
    "files":
    [
        {
            "file": "html.mp4",
        }
        ,
        {
            "file": "css.mp4",
        }

    ]
}

در واقع قصد دارم ستونی بنام files هم داشته باشم که رکوردهای هر پست رو از جدول رسانه ها استخراج و به همراه اطلاعات دیگه پست نمایش بده
ممنون میشم کسانی که تجربه دارن انتقال بدن
سپاس گذارم


ثبت پرسش جدید
اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 6 سال پیش مطرح شد
0

سلام
کار ساده ای هست. باید از روابط استفاده کنید وبعد به صورت زیر کد بزنید

$user = User::all();
        foreach ($user as $userItem) {
            foreach ($userItem->Post as $postItem) {
                $postItem->posts_media;
            }
        }

نتیجه یک ارایه تو در تو هست که اطالاعات همه کاربران توش هست. توی اطلاعات هر کاربر اطلاعات همه ی پست های اون کاربر هست. توی اطلاعات هر پست تصاویر اون پست هست.


مهدی
@mehdi13 6 سال پیش مطرح شد
0

@ashkannazari248
عزیز این روش بهینه نیست برای تعداد رکوردهای چند هزار تایی
من میخوام خود DBMS اینو هندل کنه نه زبان برنامه نویسی


اشکان نظری
تخصص : برنامه نویس
@ashkannazari248 6 سال پیش مطرح شد
0

شما همه پست های همه ی کاربرا رو که نمیخواید. شرط بزارید. من کلی گفتم


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

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