Simple Queries, Complex Queries এবং Joins

ডাটাবেস ইন্টিগ্রেশন এবং কুয়েরি বিল্ডার - ফুয়েলপিএইচপি (FuelPHP) - Web Development

250

FuelPHP একটি আধুনিক এবং শক্তিশালী PHP ফ্রেমওয়ার্ক, যা ওয়েব ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এটি ORM (Object-Relational Mapping) সমর্থন করে, যা ডেটাবেস পরিচালনা এবং ডেটা ম্যানিপুলেশনের জন্য সহজ এবং দক্ষ উপায় প্রদান করে। FuelPHP এর ORM পদ্ধতি ব্যবহার করে সহজ এবং জটিল SQL Queries তৈরি করা সম্ভব, এবং Joins সমর্থনও রয়েছে।

এখানে FuelPHP-এর মাধ্যমে Simple Queries, Complex Queries, এবং Joins সম্পর্কে বিস্তারিত আলোচনা করা হলো।

1. Simple Queries in FuelPHP (ORM)

Simple Queries হল এমন সহজ SQL কোয়েরি, যা সাধারণত একটি টেবিল থেকে ডেটা নির্বাচন, ইনসার্ট, আপডেট বা ডিলিট করতে ব্যবহৃত হয়। FuelPHP ORM এই কোয়েরিগুলি সহজভাবে ব্যবহার করার সুযোগ দেয়, যেখানে আপনি ডেটাবেস টেবিলের সাথে সরাসরি ইন্টারঅ্যাক্ট না করেও ডেটা ম্যানিপুলেট করতে পারেন।

Simple Query Example (Select):

FuelPHP-তে একটি টেবিলের ডেটা নির্বাচন করার জন্য ORM ব্যবহার করা যায়। এখানে একটি সহজ সিলেক্ট কোয়েরি দেখানো হয়েছে:

// Model: User.php
class Model_User extends Orm\Model
{
    protected static $_table_name = 'users';  // Table name
    protected static $_primary_key = 'id';   // Primary key
}

// Controller Example:
public function action_index()
{
    // Select all users
    $users = Model_User::find('all');

    // Display users
    foreach ($users as $user) {
        echo $user->username . ' - ' . $user->email . '<br>';
    }
}

এখানে:

  • Model_User::find('all'): এটি users টেবিলের সমস্ত রেকর্ড নির্বাচন করে।
  • $user->username এবং $user->email: এটি ORM ব্যবহার করে ডেটাবেসের কলামগুলির মান গ্রহণ করছে।

Simple Query Example (Insert):

FuelPHP-তে ডেটা ইনসার্ট করতে ORM ব্যবহার করা হয়।

$user = Model_User::forge(array(
    'username' => 'john_doe',
    'email'    => 'john.doe@example.com',
    'password' => Hash::make('password123'),
));

$user->save();  // Save the new user

এখানে:

  • Model_User::forge(): একটি নতুন ইউজার তৈরি করছে।
  • $user->save(): নতুন ইউজারকে ডেটাবেসে ইনসার্ট করছে।

Simple Query Example (Update):

FuelPHP ORM ব্যবহার করে ডেটা আপডেট করা খুবই সহজ:

$user = Model_User::find(1);  // Find user with ID 1
$user->email = 'newemail@example.com';  // Update email
$user->save();  // Save changes

এখানে:

  • Model_User::find(1): users টেবিল থেকে আইডি 1-এর ইউজারটিকে নির্বাচন করছে।
  • $user->save(): আপডেট করা ইউজারকে ডেটাবেসে সেভ করছে।

2. Complex Queries in FuelPHP (ORM)

Complex Queries হল এমন SQL কোয়েরি যা একাধিক শর্ত, গ্রুপিং, অর্ডারিং বা লিমিটেশন অন্তর্ভুক্ত করে। FuelPHP ORM ব্যবহার করে এই ধরনের কোয়েরি করা সম্ভব।

Complex Query Example (Where conditions and ordering):

$users = Model_User::find('all', array(
    'where' => array(
        array('status', '=', 'active'),
        array('age', '>=', 18),
    ),
    'order_by' => array('username' => 'asc'),
    'limit' => 10,
));

foreach ($users as $user) {
    echo $user->username . ' - ' . $user->email . '<br>';
}

এখানে:

  • where: একটি বা একাধিক শর্ত যোগ করা হয়েছে (যেমন, status = 'active' এবং age >= 18)।
  • order_by: আউটপুটকে একটি নির্দিষ্ট কলাম (যেমন username) দ্বারা সাজানো হয়েছে।
  • limit: আউটপুটের সংখ্যা সীমিত করা হয়েছে (এখানে ১০টি ইউজার দেখানো হবে)।

Complex Query Example (Distinct, Group By, and Having):

$users = DB::select(DB::expr('DISTINCT(username)'))
    ->from('users')
    ->where('status', '=', 'active')
    ->group_by('username')
    ->having('count(username)', '>', 1)
    ->execute();

foreach ($users as $user) {
    echo $user['username'] . '<br>';
}

এখানে:

  • DISTINCT: ভিন্ন ইউজারনেম নির্বাচন করছে।
  • group_by: username অনুসারে গ্রুপ করছে।
  • having: গ্রুপের মধ্যে কিছু শর্ত যোগ করা হয়েছে (যেমন, ইউজারনেমের সংখ্যা ১-এর বেশি হতে হবে)।

3. Joins in FuelPHP (ORM)

Joins হল SQL কোয়েরি ব্যবহারের একটি পদ্ধতি, যা একাধিক টেবিলের ডেটাকে একত্রিত করে। FuelPHP ORM সাপোর্ট করে INNER JOIN, LEFT JOIN, RIGHT JOIN, ইত্যাদি।

Join Example (Inner Join):

$users = DB::select('users.username', 'posts.title')
    ->from('users')
    ->join('posts')->on('users.id', '=', 'posts.user_id')
    ->where('posts.status', '=', 'published')
    ->execute();

foreach ($users as $user) {
    echo $user['username'] . ' - ' . $user['title'] . '<br>';
}

এখানে:

  • join('posts')->on('users.id', '=', 'posts.user_id'): এটি users এবং posts টেবিলগুলিকে user_id দিয়ে INNER JOIN করছে।
  • where('posts.status', '=', 'published'): শুধুমাত্র প্রকাশিত পোষ্টের তথ্য দেখানো হচ্ছে।

Join Example (Left Join):

$users = DB::select('users.username', 'comments.comment_text')
    ->from('users')
    ->join('comments', 'LEFT')->on('users.id', '=', 'comments.user_id')
    ->execute();

foreach ($users as $user) {
    echo $user['username'] . ' - ' . $user['comment_text'] . '<br>';
}

এখানে:

  • join('comments', 'LEFT'): users টেবিলের সাথে LEFT JOIN হচ্ছে, যার মাধ্যমে এমন ইউজারগুলোও আনা হবে যাদের কমেন্ট না থাকলেও।
  • comments.comment_text: এই কলামে ইউজারের কমেন্টের টেক্সট প্রদর্শিত হবে।

Join Example (Multiple Joins):

$results = DB::select('users.username', 'posts.title', 'comments.comment_text')
    ->from('users')
    ->join('posts')->on('users.id', '=', 'posts.user_id')
    ->join('comments')->on('posts.id', '=', 'comments.post_id')
    ->where('comments.status', '=', 'approved')
    ->execute();

foreach ($results as $result) {
    echo $result['username'] . ' - ' . $result['title'] . ' - ' . $result['comment_text'] . '<br>';
}

এখানে:

  • join('posts')->on('users.id', '=', 'posts.user_id'): users এবং posts টেবিলের মধ্যে INNER JOIN হচ্ছে।
  • join('comments')->on('posts.id', '=', 'comments.post_id'): posts এবং comments টেবিলের মধ্যে INNER JOIN হচ্ছে।
  • comments.status = 'approved': শুধুমাত্র অনুমোদিত কমেন্টগুলো রিটার্ন করা হচ্ছে।

সারাংশ:

  • Simple Queries: FuelPHP ORM ব্যবহার করে সহজ SQL কোয়েরি করা যায়, যেমন find(), save(), delete(), ইত্যাদি।
  • Complex Queries: FuelPHP-তে where, order_by, group_by, having ইত্যাদি ফিচারের মাধ্যমে জটিল কোয়েরি তৈরি করা সম্ভব।
  • Joins: FuelPHP ORM-এ INNER JOIN, LEFT JOIN, RIGHT JOIN সহ বিভিন্ন ধরনের JOIN ব্যবহার করা যেতে পারে।

FuelPHP ORM কোয়েরিগুলি ব্যবহার করে আপনি সহজভাবে ডেটাবেসের টেবিলগুলোর সাথে ইন্টারঅ্যাক্ট করতে পারেন, এবং প্রয়োজনে জটিল কুয়েরি তৈরি করতে পারেন। ORM এর মাধ্যমে FuelPHP কোডিংকে আরও সহজ, কার্যকরী, এবং রিডেবল বানায়।

Content added By
Promotion

Are you sure to start over?

Loading...