যেকোনো একটি course এ ভর্তি হয়ে সম্পূর্ণ ফ্রি তে Laravel 5.6 From Beginning to Advance কোর্সটি করার সুযোগ!

বাংলাদেশের ৩৬ তম Zend Certified Engineer, Masud Alam স্যার এর কাছে যেকোনো একটি কোর্সে ভর্তি হয়ে সম্পূর্ণ ফ্রীতে Laravel 5.6 শিখে নিন!

কিভাবে ?

ভাষার মাস পুরো February মাসে যারা Masud Alam স্যার এর দুটি course :

1. Professional Web Design and Development with PHP & MySQL for Beginners course
2. Zend Certified PHP Engineer (ZCPE) Advance Course

কোর্স দুটির যেকোনো একটিতে ভর্তি হবে স্যার তাদেরকে Laravel 5.6 From Beginning to advance (৬০ ঘন্টার) কোর্সটি সম্পূর্ণ ফ্রি তে করার সুযোগ দিবেন।

প্রত্যেকটি Course এর ফী নির্ধারণ করা হয়েছে: ৩০,০০০/=

অর্থাৎ যারা যেকোনো একটি কোর্স ৩০,০০০ টাকা দিয়ে করলেই ৬০ ঘন্টার Laravel 5.6 কোর্সটি সম্পূর্ণ ফ্রীতে করতে পারবেন।

উল্লেখ্য দীর্ঘ ৮ বছর Masud Alam স্যার Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করেন। বিশেষ ভাবে বাংলাদেশের ১০১ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ৫২ জন ই তার হাতে জেন্ড সার্টিফাইড হয়েছে। বর্তমানে তিনি TechBeeo Software Company তে সিইও হিসাবে আছেন ।

সুতরাং যারা ওয়েবডেভলপ করতে চান অথবা ওয়েব ডেভেলপমেন্ট এ ক্যারিয়ার গড়তে চান তাদের জন্য সূবর্ণ সুযোগ। এই কোর্স গুলোতে স্যার স্টুডেন্ট দের মার্কেট place যেমন upwork, freelancer.com, fiverr, themeforest, codecanyon সম্পর্কে বিস্তারিত প্রশিক্ষণ দেয়া হবে, যারা যারা ইচ্ছুক তাদেরকে ২৮ই ফেব্রুয়ারী এর মধ্যে রেজিষ্ট্রেশন করার জন্য অনুরোধ করা যাচ্ছে। যে কোন আগ্রহী ব্যক্তিকে অতিসত্তর স্যার এর মোবাইল নম্বর: 01722 817591 এ যোগাযোগ করার অনুরোধ করা যাচ্ছে।

বাংলায় PHP LARAVEL FRAMEWORK পর্ব-১২: Database Where Clauses with Query Builder

Database Where Clauses

Database Where Clauses

Laravel ১২ তম পর্বে আপনাকে স্বাগতম। এই পর্বটি বুঝতে হলে আপনাকে অবশ্যই আমাদের এর আগের পর্ব অর্থাৎ ১০ তম পর্বটি পড়ে আসতে হবে। বিশেষ ভাবে Query Builder নিয়ে কাজ করার পূর্ব প্রস্তুতি এই পার্ট টুকু দেখে নিতে হবে। এই পর্বে আমরা Laravel Query Builder দিয়ে Database এর যেকোনো table থেকে Data Select ব্যবহার করার সময় Where এবং Conditional clause এর ব্যবহার শিখবো।

Whaere Clause কি?

Database থেকে নির্দিষ্ট শর্ত সাপেক্ষে Data retrieve করার জন্য SQL WHERE clause ব্যবহার করা হয়। আরো সহজভাবে বলা যায় আপনি Database এর record গুলো ব্যবহার কারীর শর্ত অনুযায়ী ফিল্টার করার জন্য SQL WHERE clause ব্যবহার করতে পারেন। Laravel Framework এর query builder class এ WHERE clause এর কাজটি আরো অনেক সহজ করে দিয়েছে, যদিও আপনি Laravel Framework এ সরাসরি raw SQL এর সাথে where clause ব্যবহার করতে পারেন, তবে Query Builder এর where method ব্যবহার করলে করলে আপনার কাজ অনেক সহজ হয়ে যাবে।

Simple Where Clauses

একটা উদাহরণ দিয়ে ব্যাপারটা আরো ভালোভাবে বুঝা যাক, ধরুন আমরা আমাদের students table থেকে শুধু ৫ নম্বর id এর স্টুডেন্ট কে দেখাব, তাহলে আমাদেরকে Laravel এর where method কে getqueryController class এ নিচের মত লিখতে হবে।

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class getqueryController extends Controller
{
	public function index(){
		
		$students = DB::table('students')->where('id', '=', 5)->get();
		foreach($students as $student){
			echo "Id: ",$student->id,"<br>","Name: ",$student->name;
		}
	}
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে

laravel where clause

laravel where clause

তবে উপরের where clause এর মত আমরা = (equal sign) না দিলেই script কাজ করবে। তখন আমাদেরকে Laravel এর where method কে getqueryController class এ নিচের মত লিখতে হবে।

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class getqueryController extends Controller
{
	public function index(){
		
		$students = DB::table('students')->where('id',5)->get();
		foreach($students as $student){
			echo "Id: ",$student->id,"<br>","Name: ",$student->name;
		}
	}
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে

laravel where clause

laravel where clause

তবে Laravel where clause এ অন্যান্য where clause এর মত আপনি <= >= <> != like এইসব ব্যবহার করতে পারেন। নিচের উদাহরণগুলো দেখুন :

$students = DB::table('students')->where('id', '=', 5)->get();
$students = DB::table('students')->where('id', '!=', 5)->get();
$students = DB::table('students')->where('id', '<=', 5)->get();
$students = DB::table('students')->where('id', '>=', 5)->get();
$students = DB::table('students')->where('id', '<>', 5)->get();
$students = DB::table('students')->where('id', 'like', '%S')->get();
$students = DB::table('students')->where([
    ['status', '=', '1'],
    ['subscribed', '<>', '1'],
])->get();

Or Statements

Laravel Framework এ অনেকগুলো শর্তের মধ্যে আপনি যেকোনো একটি পাওয়ার জন্য orWhere ব্যবহার করতে পারেন। আপনার getqueryController class এ নিচের কোডটি লিখুন :

<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class getqueryController extends Controller
{
	public function index(){
		
		$students = DB::table('students')
                    ->where('id', '>', 3)
                    ->orWhere('name', 'Sohag')
                    ->get();
		foreach($students as $student){
			echo "Id: ",$student->id,"&nbsp;&nbsp;","Name: ",$student->name,"<br>";
		}
	}
}

এখন আপনি যদি আপনার ব্রাউজার এ http://localhost:8000/getquery হিট করেন তাহলে নিচের মত ফলাফল দেখাবে

Laravel orWhere Clause

Laravel orWhere Clause

সব গুলো where clauses method গুলো নিচে table আকারে দেওয়া হল :

Method নাম Method এর ব্যবহার উদাহরণ
whereBetween একটি নির্দিষ্ট column এর value টি দুটি value এর range এর মধ্যভর্তি যেকোন value কিনা, তা যাচাই করে।
$students = DB::table('students')
->whereBetween('id', [1, 5])
->get();
whereNotBetween একটি নির্দিষ্ট column এর value টি দুটি value এর range এর মধ্যভর্তি যেকোন value নয়, তা যাচাই করে।
$students = DB::table('students')
->whereNotBetween('id', [1, 5])
->get();
whereIn একটি নির্দিষ্ট column এর value গুলো আপনার দেওয়া যেইসব array এর value গুলোর সাথে মিলবে , শুধু সেগুলো নিয়ে কাজ করবে।
$students = DB::table('students')
->whereIn('id', [1,2,3])
->get();
whereNotIn একটি নির্দিষ্ট column এর value গুলো আপনার দেওয়া যেইসব array এর value গুলোর সাথে মিলবে না , শুধু সেগুলো নিয়ে কাজ করবে।
$students = DB::table('students')
->whereNotIn('id', [1,2,3])
->get();
whereNull একটি নির্দিষ্ট column এর মান null কিনা তা চেক করে।
$students = DB::table('students')
->whereNull('updated_at')
->get();
whereNotNull একটি নির্দিষ্ট column এর মান null নয় তা চেক করে।
$students = DB::table('students')
->whereNotNull('updated_at')
->get();
whereDate একটি নির্দিষ্ট column এর মান একটি নির্দিষ্ট date কিনা তা চেক করে।
$students = DB::table('students')
->whereDate('created_at', '2017-12-31')
->get();
whereMonth একটি নির্দিষ্ট column এর মান একটি নির্দিষ্ট Month কিনা তা চেক করে।
$students = DB::table('students')
->whereMonth('created_at', '12')
->get();
whereDay একটি নির্দিষ্ট column এর মান একটি নির্দিষ্ট day কিনা তা চেক করে।
$students = DB::table('students')
->whereDay('created_at', '31')
->get();
whereYear একটি নির্দিষ্ট column এর মান একটি নির্দিষ্ট year কিনা তা চেক করে।
$students = DB::table('students')
->whereYear('created_at', '2017')
->get();
whereTime একটি নির্দিষ্ট column এর মান একটি নির্দিষ্ট time কিনা তা চেক করে।
$students = DB::table('students')
->whereTime('created_at', '12:30')
->get();
whereColumn দুটি column এর মান এর মধ্যে compare করার জন্য ব্যবহার করা হয় ।
$students = DB::table('students')
->whereColumn('first_name', 'last_name')
->get();

$users = DB::table('users')
->whereColumn(
'updated_at', '>', 'created_at'
)->get();
$students = DB::table('students')
->whereColumn([
['first_name', '=', 'last_name'],
['updated_at', '>', 'created_at']
])->get();

Parameter Grouping

কখনো কখনো আপনাকে advance query লেখার জন্য অনেক গুলো where এর Parameter গুলোকে Grouping করতে হতে পারে, Laravel query builder এই কাজটা দারুন ভাবে হ্যান্ডেল করেছে , Parameter Grouping বুঝার জন্য নিচের query টি লক্ষ্য করুন :

DB::table('students')
            ->where('name', '=', 'Habib')
            ->orWhere(function ($query) {
                $query->where('id', '>', 5)
                      ->where('title', '<>', 'Mr');
            })
            ->get();

উপরের query টি নিচের মত SQL তৈরী করবে :

select * from students where name = 'Habib' or (id > 5 and title <> 'Mr')

Where Exists Clauses

whereExists Method দিয়ে আপনি where exists clause তৈরী করতে পারেন। whereExists Method টি মূলত closure এর argument রিসিভ করার মাধ্যমে কাজ করে থাকে। আর closure এর argument টি query builder class এর instance receive করে , যা query define করার কাজে ব্যবহৃত হয়। Where Exists Clauses বুঝার জন্য নিচের query টি লক্ষ্য করুন :

DB::table('users')
            ->whereExists(function ($query) {
                $query->select(DB::raw(1))
                      ->from('orders')
                      ->whereRaw('orders.user_id = users.id');
            })
            ->get();

উপরের query টি নিচের মত একটি query generate করবে।

select * from users
where exists (
    select 1 from orders where orders.user_id = users.id
)

JSON Where Clauses

Laravel Framework এ MySQL 5.7 এবং PostgreSQL Database এর json column type কলাম থেকে আপনি Data query করতে পারেন। আর এর জন্য আপনাকে “->” Operator টি ব্যবহার করতে হবে। JSON Where Clauses বুঝার জন্য নিচের query টি লক্ষ্য করুন :

$users = DB::table('users')
                ->where('options->language', 'en')
                ->get();

$users = DB::table('users')
                ->where('preferences->dining->meal', 'salad')
                ->get();

Conditional Clauses

একটি নির্দিষ্ট condition true হওয়ার ভিত্তিতে where clause রান করতে হয়, আর এর জন্য আপনাকে when condition clause ব্যবহার করতে হবে। when condtion clause ব্যবহার বুঝার জন্য নিচের উদাহরণটি দেখুন :

$role = $request->input('role');

$users = DB::table('users')
                ->when($role, function ($query) use ($role) {
                    return $query->where('role_id', $role);
                })
                ->get();

ব্যাখ্যা :উপরের closure টি শুধু তখনই execute হবে , যখন first parameter এর condtion true হবে। আর first parameter false হলে closure execute হবেনা।

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

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 সাইট টি আমার।
One comment on “বাংলায় PHP LARAVEL FRAMEWORK পর্ব-১২: Database Where Clauses with Query Builder
  1. Sir, I am very interested wab design and development course. I live in Khulna. 2 time go to dhaka. Please help me.

    Thanks
    Benzir Ahmed

Leave a Reply

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