PHP-де SQL сұранысының нәтижесін алу
Алдыңғы сабақта біз сынақ кодын жасадық. Оның маңызды бөлігін еске түсірейін, яғни деректер базасына сұраныс жіберетін бөлігін:
<?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 шығарады - жұмысшылар таусылды
?>