Të gjitha rreshtat nga rezultati në PDO në PHP

Mund të merrni menjëherë një grup të gjitha rreshtave nga rezultati i kërkesës. Kjo bëhet duke përdorur metodën fetchAll. Le të shqyrtojmë mënyrat e ndryshme të funksionimit të kësaj metode. Të gjitha shembujt do të jenë për tabelën testuese.

Marrja e një grupi të thjeshtë

Le të aplikojmë metodën fetchAll për të marrë një grup të thjeshtë të dhënash. Për këtë, le t'i lëjmë parametrat e metodës bosh:

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

Rezultati i ekzekutimit të kodit:

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,
  ],
]

Marrja e një kolone të vetme

Le të marrim vetëm një kolonë nga tabela. Për këtë, do t'i kalojmë metodës fetchAll parametrin FETCH_COLUMN:

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

Rezultati i ekzekutimit të kodit:

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

Marrja e çiftit çelës-vlerë

Le të marrim të dhënat në formën e çiftit çelës-vlerë, ku çelësi do të jetë id, dhe vlera do të jetë emri i përdoruesit. Për këtë, në parametrin e metodës fetchAll do të kalojmë mënyrën FETCH_KEY_PAIR:

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

Rezultati i ekzekutimit të kodit:

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

Marrja e të dhënave me fushë unike

Mund të bëhet që një fushë unike (zakonisht id), të bëhet çelës për secilin nën-grup:

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

Rezultati i ekzekutimit të kodit:

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,
  ],
]

Detyra praktike

Задание 1

Shfaqni të gjithë përdoruesit nga tabela users, duke përdorur metodën e përshkruar në mësim.

Задание 2

Shfaqni një rresht të dhënash nga tabela users.

Задание 3

Shfaqni emrin dhe moshën e përdoruesve në formën e çiftit çelës-vlerë.