SQL հարցման արդյունքը PHP-ում ստանալը

Նախորդ դասում մենք պատրաստեցինք փորձնական կոդ։ Հիշեցնեմ դրա կարևոր մասը, որն կատարում է հարցում դեպի տվյալների բազա․

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

Ինչպես տեսնում եք, այն բանից հետո, երբ տեղի կունենա հարցում դեպի բազա, $res փոփոխականում կլինի այդ գործողության արդյունքը։ Սակայն այն գտնվում է ոչ թե այն ձևով, որը մեզ անհրաժեշտ է PHP-ում, այլ այն ձևով, որով այն մեզ է ուղարկել բազան։

Որպեսզի արդյունքը ստանանք մեզ ծանոթ ձևով, անհրաժեշտ է օգտագործել 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 - աշխատողները վերջացել են
?>