Eredmény lekérése SQL lekérdezésnél PHP-ben
Az előző leckében készítettünk egy teszt kódot. Emlékeztetőül annak lényeges részét, amely lekérdezést hajt végre az adatbázison:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Amint látod, miután megtörtént a
lekérdezés az adatbázisban, a $res
változóban az adott művelet eredménye lesz.
Azonban nem abban a formában, amelyre
szükségünk van PHP-ben, hanem abban a formában,
amelyben az adatbázis küldte nekünk.
Ahhoz, hogy az eredményt a megszokott
formában kapjuk meg, a mysqli_fetch_assoc
funkciót kell használnunk, amely kinyeri
az eredményből egy sor adatot.
Próbáljuk ki:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Az eredményként a var_dump kiírja
az első munkavállalót tartalmazó tömböt:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Ezzel egyidejűleg a $res változóból
az első munkavállaló eltűnik, és a mysqli_fetch_assoc
funkció következő hívása már a következő
munkavállalót kapja meg.
És így hívhatjuk a funkciónkat addig,
amíg a munkavállalók el nem fogynak.
Amint ez megtörténik, a funkció következő
hívása false értéket ad vissza.
Próbáljuk ki:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // 1. számú munkavállaló
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // 2. számú munkavállaló
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // 3. számú munkavállaló
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // 4. számú munkavállaló
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // 5. számú munkavállaló
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // 6. számú munkavállaló
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // NULL-t ír ki - elfogytak a munkavállalók
?>