SQL հարցման արդյունքը 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
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Արդյունքում var_dump-ը կարտածի զանգված
առաջին աշխատողով․
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Այդ դեպքում $res փոփոխականից առաջին
աշխատողը կանհետանա, և mysqli_fetch_assoc-ի
հաջորդ կանչը կստանա արդեն հաջորդ աշխատողին։
Եվ այսպես կարելի է կանչել մեր ֆունկցիան մինչև
որ աշխատողները չվերջանան։ Երբ դա տեղի կունենա, ֆունկցիայի
հաջորդ կանչը կվերադարձնի false։
Փորձենք․
<?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 - աշխատողները վերջացել են
?>