Az összes sor az eredményből a PDO-ban PHP-ben

Azonnal le lehet kérni az összes sort a lekérdezés eredményéből. Ezt a fetchAll metódussal tehetjük meg. Nézzük meg ennek a metódusnak a különböző működési módjait. Minden példa a teszt táblára vonatkozik.

Egyszerű tömb lekérése

Alkalmazzuk a fetchAll metódust az adatok egyszerű tömb formájában való lekéréséhez. Ehhez hagyjuk üresen a metódus paramétereit:

php<?php
  $res = $pdo->query('SELECT * FROM users');
  
  $row = $res->fetchAll();
  var_dump($row);
?>

A kód végrehajtásának eredménye:

php[
  [
    'id'     => 1,
    'name'   => 'name1',
    'age'    => 21,
    'salary' => 500,
  ],
  [
    'id'     => 2,
    'name'   => 'name2',
    'age'    => 22,
    'salary' => 600,
  ],
  [
    'id'     => 3,
    'name'   => 'name3',
    'age'    => 23,
    'salary' => 600,
  ],
  [
    'id'     => 4,
    'name'   => 'name4',
    'age'    => 24,
    'salary' => 700,
  ],
  [
    'id'     => 5,
    'name'   => 'name5',
    'age'    => 25,
    'salary' => 800,
  ],
]

Egy oszlop lekérése

Kérjük le csak egy oszlopot a táblából. Ehhez adjuk át a fetchAll metódusnak a FETCH_COLUMN paramétert:

php<?php
  $res = $pdo->query('SELECT name FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_COLUMN);
  var_dump($row);
?>

A kód végrehajtásának eredménye:

php[
  'name1',
  'name2',
  'name3',
  'name4',
  'name5',
]

Kulcs-érték pár lekérése

Kérjük le az adatokat kulcs-érték pár formájában, ahol a kulcs az id, az érték pedig a felhasználó neve. Ehhez a fetchAll metódus paraméterébe adjuk át a FETCH_KEY_PAIR módot:

php<?php
  $res = $pdo->query('SELECT id, name FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_KEY_PAIR);
  var_dump($row);
?>

A kód végrehajtásának eredménye:

php[
  1 => 'name1',
  2 => 'name2',
  3 => 'name3',
  4 => 'name4',
  5 => 'name5',
]

Rekordok lekérése egyedi mezővel

Megtehetjük, hogy az egyedi mező (általában ez a id) legyen a kulcsa minden alltömbnek:

php<?php
  $res = $pdo->query('SELECT * FROM users');
  
  $row = $res->fetchAll(PDO::FETCH_UNIQUE);
  var_dump($row);
?>

A kód végrehajtásának eredménye:

php[
  1 => [
    'id'     => 1,
    'name'   => 'name1',
    'age'    => 21,
    'salary' => 500,
  ],
  2 => [
    'id'     => 2,
    'name'   => 'name2',
    'age'    => 22,
    'salary' => 600,
  ],
  3 => [
    'id'     => 3,
    'name'   => 'name3',
    'age'    => 23,
    'salary' => 600,
  ],
  4 => [
    'id'     => 4,
    'name'   => 'name4',
    'age'    => 24,
    'salary' => 700,
  ],
  5 => [
    'id'     => 5,
    'name'   => 'name5',
    'age'    => 25,
    'salary' => 800,
  ],
]

Gyakorlati feladatok

Задание 1

Jelenítsd meg az összes felhasználót a users táblából, a leckében ismertetett metódus használatával.

Задание 2

Jeleníts meg egy adatsort a users táblából.

Задание 3

Jelenítsd meg a felhasználók nevét és korát kulcs-érték pár formájában.