PHP'de SQL Sorgusu Sonucu Alma
Önceki derste test kodunu yapmıştık. Veritabanına sorgu yapan önemli kısmını hatırlatayım:
<?php
$query = 'SELECT * FROM users';
$res = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($res);
?>
Gördüğünüz gibi, veritabanına sorgu yapıldıktan
sonra, $res değişkeninde bu eylemin
sonucu yer alacaktır. Ancak sonuç, PHP'de
ihtiyacımız olan formatta değil, veritabanının
bize gönderdiği formatta bulunur.
Sonucu alışık olduğumuz forma getirmek için,
sonuçtan bir satır çıkaran mysqli_fetch_assoc
fonksiyonunu kullanmak gerekir.
Deneyelim:
<?php
$row = mysqli_fetch_assoc($res);
var_dump($row);
?>
Sonuç olarak var_dump ilk çalışanla
ilgili diziyi gösterecek:
<?php
['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>
Bu durumda $res değişkeninden ilk
çalışan kaybolacak ve sonraki mysqli_fetch_assoc
çağrısı zaten bir sonraki çalışanı alacaktır.
Ve çalışanlar bitene kadar fonksiyonumuzu
çağırmaya devam edebiliriz. Bu olduğunda,
bir sonraki fonksiyon çağrısı false
döndürecektir.
Deneyelim:
<?php
$row1 = mysqli_fetch_assoc($res);
var_dump($row1); // çalışan numara 1
$row2 = mysqli_fetch_assoc($res);
var_dump($row2); // çalışan numara 2
$row3 = mysqli_fetch_assoc($res);
var_dump($row3); // çalışan numara 3
$row4 = mysqli_fetch_assoc($res);
var_dump($row4); // çalışan numara 4
$row5 = mysqli_fetch_assoc($res);
var_dump($row5); // çalışan numara 5
$row6 = mysqli_fetch_assoc($res);
var_dump($row6); // çalışan numara 6
$row7 = mysqli_fetch_assoc($res);
var_dump($row7); // NULL gösterecek - çalışanlar bitti
?>