এসকিউএল কুয়েরির ফলাফল পিএইচপিতে পাওয়া

পূর্ববর্তী পাঠে আমরা একটি টেস্ট কোড তৈরি করেছিলাম। এর গুরুত্বপূর্ণ অংশটি স্মরণ করিয়ে দিচ্ছি, যা ডেটাবেজে কুয়েরি কার্যকর করে:

php<?php
  $query = 'SELECT * FROM users';
  $res = mysqli_query($link, $query) or die(mysqli_error($link));
  var_dump($res);
?>

আপনি দেখতে পাচ্ছেন, ডেটাবেজে কুয়েরি করার পরে, $res ভেরিয়েবলে সেই কর্মের ফলাফল থাকবে। যাইহোক, এটি সেই ফর্মে নেই যা আমাদের পিএইচপিতে প্রয়োজন, বরং সেই ফর্মে আছে যেভাবে ডেটাবেজ এটি আমাদের কাছে পাঠিয়েছে।

আমাদের কাছে পরিচিত ফর্মে ফলাফল পেতে, আমাদের ফলাফল থেকে একটি সারি বের করে আনার ফাংশনটি ব্যবহার করতে হবে mysqli_fetch_assoc।

চেষ্টা করা যাক:

php<?php
  $row = mysqli_fetch_assoc($res);
  var_dump($row);
?>

ফলস্বরূপ var_dump প্রথম কর্মচারী সহ একটি অ্যারে প্রদর্শন করবে:

php<?php
  ['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>

এবং এই সময়ে, $res ভেরিয়েবল থেকে প্রথম কর্মচারী অদৃশ্য হয়ে যাবে, এবং mysqli_fetch_assoc এর পরবর্তী কল ইতিমধ্যেই পরবর্তী কর্মচারী পাবে।

এবং এইভাবে আমাদের ফাংশনটি যতক্ষণ না কর্মচারীরা শেষ হয় ততক্ষণ পর্যন্ত কল করা যেতে পারে। যত তাড়াতাড়ি এটি ঘটবে, ফাংশনের পরবর্তী কল false ফেরত দেবে।

চেষ্টা করা যাক:

php<?php
  $row1 = mysqli_fetch_assoc($res);
  var_dump($row1); // কর্মচারী নম্বর 1
  
  $row2 = mysqli_fetch_assoc($res);
  var_dump($row2); // কর্মচারী নম্বর 2
  
  $row3 = mysqli_fetch_assoc($res);
  var_dump($row3); // কর্মচারী নম্বর 3
  
  $row4 = mysqli_fetch_assoc($res);
  var_dump($row4); // কর্মচারী নম্বর 4
  
  $row5 = mysqli_fetch_assoc($res);
  var_dump($row5); // কর্মচারী নম্বর 5
  
  $row6 = mysqli_fetch_assoc($res);
  var_dump($row6); // কর্মচারী নম্বর 6
  
  $row7 = mysqli_fetch_assoc($res);
  var_dump($row7); // NULL দেখাবে - কর্মচারী শেষ
?>