PHP Professional এবং Zend Certified PHP Engineer (ZCPE ) Course এ সীমিত সংখ্যক আসন বাকি আছে। আগ্রহীদেরকে অতিসত্বর মাসুদ আলম স্যার এর সাথে যোগাযোগ করার জন্য অনুরোধ করা যাচ্ছে। স্যার এর মোবাইল নম্বর : ০১৭২২ ৮১ ৭৫ ৯১

বাংলায় PHP LARAVEL FRAMEWORK পর্ব-১৩: Ordering, Grouping, Limit, & Offset with Query Builder

Database Ordering, grouping, limit

Database Ordering, grouping, limit

Laravel ১৩ তম পর্বে আপনাকে স্বাগতম। এই পর্বটি বুঝতে হলে আপনাকে অবশ্যই আমাদের এর আগের পর্ব অর্থাৎ ১০ তম পর্বটি পড়ে আসতে হবে। বিশেষ ভাবে Query Builder নিয়ে কাজ করার পূর্ব প্রস্তুতি এই পার্ট টুকু দেখে নিতে হবে। আজকের পর্বে আমরা Laravel Framework এ Data Ordering, Grouping, Limit, & Offset এই বিষয় গুলো দেখব।

Ordering

Laravel Framework দিয়ে Database এ Ordering টা তিন ভাবে করা যায়।

১. orderBy
২. latest / oldest
৩. inRandomOrder

এবার চলুন উপরের তিনটির ব্যবহার দেখা যাক:

orderBy: Database এর table এর একটি নির্দিষ্ট column এর ভিত্তিতে ascending অথবা descending অর্ডারে data সাজানোর জন্য orderBy Method ব্যবহৃত হয়। আর এর জন্য orderBy Method এর প্রথম Parameter এ table এর column এর নাম দিতে হয়, এবং দ্বিতীয় parameter এ asc অথবা desc লিখতে হবে। আপনার SQL টি ঠিক নিচের মতো হবে :

$students= DB::table('students')
                ->orderBy('name', 'desc')
                ->get();

latest / oldest: table এর প্রত্যেকটি row তৈরী হওয়ার date এর ভিত্তিতে latest অথবা oldest অর্ডারে সাজানো যায়। by default created_at কলাম এর ভিত্তিতে অর্ডারিং করে , তবে আপনি চাইলে short করার জন্য যেকোনো column name পাঠাতে পারেন। আপনার SQL টি ঠিক নিচের মতো হবে :

$students= DB::table('students')
                ->latest()
                ->first();

inRandomOrder:Database এর query result কে randomly দেখানোর জন্য ব্যবহৃত হয়। আপনার SQL টি ঠিক নিচের মতো হবে :

$randomStudent = DB::table('students')
                ->inRandomOrder()
                ->first();

groupBy / having

Database এর query result কে group wise দেখানোর জন্য groupBy / having ব্যবহৃত হয়। আর having method টি where এর মত কাজ করে। ধরুন আমাদের student table এর data গুলো student_id এর ভিত্তিতে group করব। এবং সেইসব id দেখাব , যেইগুলো 5 এর চেয়ে বড়। আপনার groupBy এবং having যুক্ত SQL টি ঠিক নিচের মতো হবে :

$students = DB::table('students')
                ->groupBy('student_id')
                ->having('student_id', '>', 5)
                ->get();

আপনি চাইলে groupBy Method এ একাধিক argument পাঠাতে পারেন ঠিক নিচের মতো:

$students= DB::table('students')
                ->groupBy('name', 'status')
                ->having('student_id', '>', 5)
                ->get();

skip / take

query থেকে প্রাপ্ত ফলাফলের সংখ্যা limit করতে বা query তে নির্দিষ্ট সংখ্যক ফলাফল বাদ দিতে, আপনি skip এবং take method ব্যবহার করতে পারেন। আপনার skip এবং take method যুক্ত SQL টি ঠিক নিচের মতো হবে :

$students = DB::table('students')->skip(10)->take(5)->get();

তবে আপনি skip method এর পরিবর্তে offset Method এবং take method এর পরিবর্তে limit method ব্যবহার করতে পারেন। আপনার offset এবং limit method যুক্ত SQL টি ঠিক নিচের মতো হবে :

$students = DB::table('students')
                ->offset(10)
                ->limit(5)
                ->get();

এই ক্যাটাগরির অন্যান্য পোস্ট:

Masud Alam
আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ৮ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। বিশেষ ভাবে বাংলাদেশের ১০০ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই আমার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে TechBeeo Software Company তে সিইও হিসাবে আছি । পাশাপাশি w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -7 Engineering কোর্স করাই। আর w3programmers.com সাইট টি আমার।

Leave a Reply

Your email address will not be published. Required fields are marked *