PHP-de SQL sorag netijesini almak

Öňki sapakda biz synag koduny düzdük. Onuň maglumat bazasyna sorag ýerine ýetirýän esasy bölegini ýatladyp geçýärin:

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

Görşüňiz ýaly, maglumat bazasyna sorag ýerine ýetirilenden soň, $res üýtgeýjisinde bu hereketiň netijesi ýerleşýär. Şonda-da, ol biz PHP-de zerur bolan görnüşde däl, eýsem biz ony maglumat bazasynyň iberen görnüşinde ýerleşýär.

Netijäni bizim üçin adat bolan görnüşde almak üçin, netijeden bir hatary çykarýan mysqli_fetch_assoc funksiýasyny ulanmaly.

Geliň synap göreliň:

php<?php
  $row = mysqli_fetch_assoc($res);
  var_dump($row);
?>

Netijede var_dump birinji işgäriň massiwini görkezer:

php<?php
  ['id' => 1, 'name' => 'user1', 'age' => 23, 'salary' => 400]
?>

Şonuň bilen bir wagtda $res üýtgeýjisinden birinji işgär aýrylýar we indiki mysqli_fetch_assoc çagyrylyşy artýndan gelen işgäri alar.

Işgärler gutarýança şeýlelikde funksiýamyzy çagyryp bilersiňiz. Bu bolansoň, indiki funksiýa çagyrylyşy false gaýtarar.

Geliň synap göreliň:

php<?php
  $row1 = mysqli_fetch_assoc($res);
  var_dump($row1); // işgär nomer 1
  
  $row2 = mysqli_fetch_assoc($res);
  var_dump($row2); // işgär nomer 2
  
  $row3 = mysqli_fetch_assoc($res);
  var_dump($row3); // işgär nomer 3
  
  $row4 = mysqli_fetch_assoc($res);
  var_dump($row4); // işgär nomer 4
  
  $row5 = mysqli_fetch_assoc($res);
  var_dump($row5); // işgär nomer 5
  
  $row6 = mysqli_fetch_assoc($res);
  var_dump($row6); // işgär nomer 6
  
  $row7 = mysqli_fetch_assoc($res);
  var_dump($row7); // NULL görkezer - işgärler gutardy
?>