CodeIgniter-এ Search Functionality ব্যবহার করে ডেটা ফিল্টার করা খুবই সহজ। এটি সাধারণত ব্যবহারকারীদের নির্দিষ্ট ডেটা খুঁজে পেতে সাহায্য করে। উদাহরণস্বরূপ, একটি টেবিল বা তালিকা থেকে ডেটা ফিল্টার করা।
ডাটাবেসে একটি টেবিল তৈরি করুন। উদাহরণস্বরূপ, একটি products
টেবিল:
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
category VARCHAR(255),
price DECIMAL(10, 2)
);
ডাটাবেসে কিছু ডেটা যোগ করুন:
INSERT INTO products (name, category, price) VALUES
('Laptop', 'Electronics', 50000),
('Smartphone', 'Electronics', 20000),
('Table', 'Furniture', 1500),
('Chair', 'Furniture', 800);
app/Models/ProductModel.php
ফাইল তৈরি করুন:
<?php
namespace App\Models;
use CodeIgniter\Model;
class ProductModel extends Model
{
protected $table = 'products';
protected $allowedFields = ['name', 'category', 'price'];
// ডেটা সার্চ করার মেথড
public function searchProducts($keyword)
{
return $this->like('name', $keyword)
->orLike('category', $keyword)
->findAll();
}
}
app/Controllers/Product.php
ফাইল তৈরি করুন:
<?php
namespace App\Controllers;
use App\Models\ProductModel;
class Product extends BaseController
{
public function index()
{
$productModel = new ProductModel();
// সার্চ কিওয়ার্ড রিসিভ করা
$keyword = $this->request->getVar('q');
// সার্চ কন্ডিশন অনুযায়ী ডেটা ফিল্টার করা
if ($keyword) {
$products = $productModel->searchProducts($keyword);
} else {
$products = $productModel->findAll();
}
$data = [
'products' => $products,
'keyword' => $keyword
];
return view('product_list', $data);
}
}
app/Views/product_list.php
ফাইল তৈরি করুন:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product List</title>
</head>
<body>
<h1>Product List</h1>
<!-- সার্চ ফর্ম -->
<form method="get" action="/product">
<input type="text" name="q" value="<?php echo $keyword; ?>" placeholder="Search...">
<button type="submit">Search</button>
</form>
<!-- প্রোডাক্ট তালিকা -->
<ul>
<?php if ($products): ?>
<?php foreach ($products as $product): ?>
<li>
<?php echo $product['name']; ?> - <?php echo $product['category']; ?> - <?php echo $product['price']; ?> BDT
</li>
<?php endforeach; ?>
<?php else: ?>
<li>No products found.</li>
<?php endif; ?>
</ul>
</body>
</html>
app/Config/Routes.php
ফাইলে Route যুক্ত করুন:
$routes->get('product', 'Product::index');
http://localhost/your_project_name/product
URL অ্যাক্সেস করুন।Electronics
বা Table
) এবং ফলাফল ফিল্টার হওয়া দেখুন।Model এর searchProducts
মেথডে like()
এবং orLike()
ব্যবহার করা হয়েছে:
like('field', 'value')
: একটি ফিল্ডের নির্দিষ্ট মান অনুসারে ডেটা ফিল্টার করে।orLike('field', 'value')
: OR কন্ডিশনের মাধ্যমে একাধিক ফিল্ড ফিল্টার করে।return $this->like('name', $keyword)
->orLike('category', $keyword)
->findAll();
CodeIgniter-এ Search Functionality ইমপ্লিমেন্ট করে আপনি ব্যবহারকারীদের জন্য একটি কার্যকর ডেটা ফিল্টারিং সিস্টেম তৈরি করতে পারবেন। এটি আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ইউজার-ফ্রেন্ডলি করে তুলবে।