1. Codeigniter Framework (CodeIgniter Framework Tutorial) Basic Tutorials of Codeigniter Framework
  2. কোডইগনাইটার ইনস্টল (CodeIgniter Install Tutorial in Bangla)
  3. How to create First Application in CodeIgniter
  4. কোডইগনাইটারের URL স্ট্রাকচার (structure of codeigniter)
  5. Codeigniter দিয়ে query করা এবং result দেখা (CI Query & Show Results)
  6. Database থেকে Data দেখা (CI Fetch Data from Database)
  7. Model তৈরী এবং কন্ট্রোলারে Access (Create Model & Access in Controller)
  8. Codeigniter দিয়ে ডেটাবেসে data ঢুকানো (CodeIgniter Insert Data to Database)
  9. Form দিয়ে ডেটাবেসের data সম্পাদনা (Data Edit in Database Via Form | Codeigniter Tutorials)
  10. ডেটাবেসের data delete (Data Delete in Database | Codeigniter Tutorials) | SP Foundationbd
  11. Form Validation টিউটোরিয়াল (CI Form Validation Tutorial | Codeigniter Tutorials) | SP Foundation
  12. Form validation tutorials (CI Form Validation Tutorial) - আরও উন্নত validation
  13. Codeigniter bootstrap integration এবং best প্রাকটিস | SP Foundationbd
  14. Codeigniter পেজিনেশন Tutorials (CodeIgniter Pagination Tutorial) | SP Foundationbd
  15. কোডইগনাইটার pagination tutorials (CodeIgniter Pagination Tutorial) - ২য় পদ্ধতিতে pagination
  16. Codeigniter সেশন Management (Session Management CodeIgniter) part one
  17. Codeigniter session ম্যানেজমেন্ট (Session Management CodeIgniter) - সেশন ড্রাইভার part two
  18. কোডইগনাইটার file আপলোড (CodeIgniter File Upload)
  19. কোডইগনাইটার Ajax টিউটোরিয়াল (CodeIgniter Ajax Tutorial) | SP Foundationbd
  20. কোডইগনাইটার URI রাউটিং টিউটোরিয়াল (CodeIgniter URI Routing Bangla Tutorials) | SP Foundationbd
  21. কোডইগনাইটারে একসাথে একাধিক ডেটাবেস ব্যবহার (Use Multiple Database Together in CodeIgniter)

Codeigniter দিয়ে query করা এবং result দেখা (CI Query & Show Results)

Codeigniter দিয়ে ডেটাবেসে যেকোন কাজ করতে আগে query শিখতে হবে। database edit, ডিলিট ইত্যাদি করতে কোডইগনাইটারে প্রচুর মেথড আছে। বিশেষ করে "query  বিল্ডার" বা Query Builder নামে একটি ক্লাস আছে যেখানে প্রায় কয়েক ডজন মেথড আছে database অপারেশনের জন্য। বিস্তারিত বর্ননা আছে এখানে

Query Builder দিয়ে ডেটাবেসে সব ধরনের কাজ করা যায় অবশ্য জটিল কোয়েরি লিখতে গেলে একটু সমস্যা হয় তবে ঐসব কোয়েরি লেখারও আলাদা পদ্ধতি আছে কোডইগনাইটারে। যাই হোক কিছু বেসিক ডেটাবেস অপারেশনের উদাহরন দেখুন কোয়েরি বিল্ডার দিয়ে

সিলেক্ট

একটা টেবিলের সব কলাম সিলেক্ট করা। get() method প্যারামিটার হিসেবে টেবিলটির নাম দিতে হয় যেমন নিচে দেখুন

1.$this->db->get('users');

 একটা টেবিলের নির্দিষ্ট কলাম সিলেক্ট করা। select() এর ভিতর প্যারামিটার হিসেবে দিতে হবে কলামের নামগুলি (কমা দিয়ে) এরপর from() এর ভিতর টেবিলের নাম এবং এবার get() দিতে হবে তবে টেবিলের নাম আর দিতে হবেনা যেমন নিচে দেখুন

1.$this->db->select('email,about')->from('users')->get();

 অর্ডারিং। order_by মেথড আছে কোয়েরি বিল্ডার ক্লাসে। এখানে প্রথম প্যারামিটার হল যে কলাম অনুযায়ী order করতে চান সেটার নাম এবং ২য় প্যারামিটারে sorting কিভাবে হবে সেটা অর্থ্যাৎ asc বা desc যেমন নিচে দিয়েছি id অনুযায়ী অর্ডারিং হবে এবং সেটা desc বা বড় থেকে ছোট।

1.$this->db->select('id,email,about')->from('users')->order_by('id','desc')->get();

 গ্রুপিং, অর্ডারিং এবং লিমিট একসাথে। group_by() মেথডে প্যারামিটার দিতে হবে কলামের নাম এবং limit() মেথডে দিতে হয় ২টি প্যারামিটার, প্রথমত কতটি করে দেখাবে সেই সংখ্যা এবং দ্বিতীয়ত  কয় নং row থেকে শুরু হবে সেটা। আর যদি একটাই প্যারামিটার দেন তাহলে ১ম প্যারামিটার SQL এর নিয়ম অনুযায়ী শূন্য হয়ে যাবে অটোমেটিক। যেমন নিচে দিয়েছি limit(10)

1.$this->db->select('*')->from('table_name')->group_by('subject')->order_by('posted_at','desc')->limit(10)->get();

 ফলাফল দেখা

উপরের উদাহরনগুলি কোয়েরি তৈরী করবে। আর এসব কোয়েরি থেকে ফলাফল পেতে যেসব ব্যবহার করতে পারেন

result_array(), result(), row() ইত্যাদি মেথড। যেমন

1.$query = $this->db->select('*')->from('table_name')->group_by('subject')->order_by('posted_at','desc')->limit(10)->get();

2.$results = $query->result_array();

 এবার এই $results কে foreach করে ডেটা ইচ্ছেমত ফরমেট করে দেখাতে পারেন। result_array() data অ্যারে হিসেবে রিটার্ন করে। যদি অবজেক্ট হিসেবে ডেটা পেতে চান তাহলে নিচের মত লিখতে পারেন।

1.$query = $this->db->select('*')->from('table_name')->group_by('subject')->order_by('posted_at','desc')->limit(10)->get();

2.$results = $query->result();

অবজেক্ট রিটার্ন করলে foreach করার পর ডেটা ধরতে হবে এভাবে

foreach($results as $r){

     echo $r->column_name;

}

অন্যান্য method ব্যবহার করে select এবং result দেখা

যদি WHERE query করতে চান তাহলে

1.$query = $this->db->select('*')->from('table_name')->where('total','200')->group_by('subject')->order_by('posted_at','desc')->limit(10)->get();

2.$results = $query->result_array();

যদি WHEHE ... IN কোয়েরি লাগে তাহলে নিচের মত করতে পারেন। লক্ষ্য করুন এখানে select(), from() এসব ব্যবহার করিনি তাই get() মেথডে টেবিলের নাম দিতে হয়েছে আবার যেখানে select(), from() এগুলি ব্যবহার করেছি সেখানে get() মেথডে টেবিলের নাম দিতে হয়নি

1.$name_arr = array('test1','test2','test3');

2.$query = $this->db->where_in('username',$name_arr )->get('users');

3.$results = $query->result_array();

 একাধিক WHERE যদি লাগে মানে AND থাকলে নিচের মত করতে পারেন। নিচে দেখুন দুটি where() মেথড দিয়েছি তাই কোয়েরিটি তৈরী হবে এভাবে SELECT * FROM users WHERE username = 'test' AND email = 'test@gmail.com'

1.$query = $this->db->where('username','test' )->where('email','test@gmail.com')->get('users');

2.$results = $query->result_array();

যদি WHERE <> (less than, greater than) লাগে এবং OR..WHERE থাকে তাহলে

1.$query = $this->db->where('posted_at >','2015-01-18 19:16:49' )->or_where('email','test@gmail.com')->get('users');

2.$results = $query->result_array();

যখন সার্চ লাগবে। নিচের মত দিলে কোয়েরিটি হবে এমন SELECT * FROM users WHERE email LIKE '%test@gmail.com%'

1.$query = $this->db->like('email','test@gmail.com')->get('users');

2.$results = $query->result_array();

যদি চান % এই wildcard টি শুধু আগে থাকবে তাহলে like('email','test@gmail.com','before') আর যদি পরে দিতে চান তাহলে like('email','test@gmail.com','after')

custom query

যদি query বিল্ডার দিয়ে আপনার কোয়েরি তৈরী করতে পারছেন না কিংবা আপনার প্রয়োজন পুরন হচ্ছেনা তাহলে সরাসরি SQL লিখে সেটাকে কোডইগনাইটারে রুপ দিতে পারেন যেমন

1.$sql= 'SELECT colum1,column2 FROM table_name WHERE id IN (3,7,9)';

2.$query = $this->db->query($sql);

3.$results = $query->result_array();

query() মেথডে প্যারামিটার হিসেবে পুরো কোয়েরিটি দিতে হয়।

Data ঢুকানো

যখন ডেটা ঢুকাতে হবে তখন আছে insert মেথড। এই মেথডের ১ম প্যারামিটার হল টেবিলের নাম এবং ২য় প্যারামিটার হল একটা অ্যারে, যে অ্যারে key তে কলামের নাম এবং value তে ডেটা।

1.$data = array(

2.'id' => 5,

3.'username' => 'rejoan',

4.'email' => 'rejoan@gmail.com'

5.);

6.$this->db->insert('users', $data);

Data update

update() এর প্রথম প্যারামিটার হল টেবিলটির নাম এবং ২য় প্যারামিটার হল অ্যারে যেখানে এডিটকৃত মানগুলি থাকবে অর্থ্যাৎ নিচের কোড users টেবিলের row টিকে আপডেট করবে যার id=$id হবে। $id যেকোন জায়গা থেকে আসতে পারে, URL কিংবা হিডেন ফিল্ড ইত্যাদি। আর আপডেটা হবে $data অ্যারের ডেটা দিয়ে। এই অ্যারেতেও key হচ্ছে কলামের নাম এবং value হল সেটার মান।

1.$data = array(

2.'id' => 5,

3.'username' => 'rejoan',

4.'email' => 'rejoan@gmail.com'

5.);

6.$this->db->where('id',$id)->update('users', $data);

 Data delete

1.$this->db->where('id',$id)->delete('users');

 

এখানে শুধু কিছু উদাহরন দেখালাম। আপনি ইচ্ছে করলে একই কোয়েরিতে যত ইচ্ছা where(), or_where(), or_like(), like() এবং আরও যতগুলি মেথড আছে এসব ব্যবহার যতবড় ইচ্ছা কোয়েরি বানাতে পারেন।