logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll
18/06/2025, by Ivan

Select upit će uvek vratiti objekat skupa rezultata koji sadrži nula ili više zapisa. Postoji nekoliko načina da se dobiju podaci iz ovog skupa rezultata u zavisnosti od slučaja upotrebe. Zapisi se podrazumevano izvlače kao objekti, osim ako ne promenite režim izvlačenja (vidi: setFetchMode).

Najčešći slučaj je iteracija kroz skup rezultata pomoću foreach() petlje.

// Statički upit:
$result = $connection->query("SELECT field1, field2 FROM {mytable}");
foreach ($result as $record) {
  // Uradi nešto sa svakim $record
}

// Dinamički upit
$result = $query->execute();
foreach ($result as $record) {
  // Uradi nešto sa svakim $record.
}

Međutim, u zavisnosti za šta su rezultati potrebni, postoje i drugi načini dobijanja zapisa.

Da biste eksplicitno dobili sledeći zapis, koristite:

$record = $result->fetch();            // Koristi podrazumevani režim izvlačenja.
$record = $result->fetchObject();  // Izvlači kao stdClass objekat.
$record = $result->fetchAssoc();   // Izvlači kao asocijativni niz.

Ako nema sledećeg zapisa, vraća se FALSE. Obično je bolje izbegavati fetch() u korist fetchObject() i fetchAssoc(), jer su poslednja dva jasnija. Ako vam treba neki drugi režim izvlačenja podržan od PDO, koristite fetch().

Da biste dobili samo jedno polje iz skupa rezultata, koristite:

$record = $result->fetchField($column_index);

Podrazumevana vrednost za $column_index je 0, što označava prvo polje.

Za brojanje redova koje vraća DELETE, INSERT ili UPDATE upit, koristite:

$number_of_rows = $result->rowCount();

Za brojanje redova koje vraća SELECT upit, koristite:

$number_of_rows = $connection->select('mytable')->countQuery()->execute()->fetchField();

Da biste izvukli sve zapise u jedan niz, koristite jednu od sledećih metoda:

// Izvuci sve zapise u indeksirani niz stdClass objekata.
$result->fetchAll();

// Izvuci sve zapise u asocijativni niz ključan prema određenom polju rezultata.
$result->fetchAllAssoc($field);

// Izvuci rezultat sa 2 kolone kao asocijativni niz polje 0 => polje 1.
$result->fetchAllKeyed();
// Takođe možete specificirati koje dve kolone koristiti navođenjem njihovih indeksa
$result->fetchAllKeyed(0,2); // biće polje 0 => polje 2
$result->fetchAllKeyed(1,0); // biće polje 1 => polje 0
// Ako vam treba niz gde su ključevi i vrednosti isto polje (npr. za kreiranje elementa forme 'checkboxes'), sledeći način je validan:
$result->fetchAllKeyed(0,0); // biće polje 0 => polje 0, npr. [article] => [article]

// Izvuci rezultat sa jednom kolonom kao običan niz.
$result->fetchCol();
// Možete navesti indeks kolone, inače je podrazumevano prva kolona
$result->fetchCol($column_index);

Obratite pažnju da fetchAll() i fetchAllAssoc() po podrazumevanoj vrednosti izvlače podatke koristeći režim izvlačenja postavljen u upitu (numerički niz, asocijativni niz ili objekat). To možete promeniti prosleđivanjem nove konstante režima izvlačenja. Za fetchAll() to je prvi parametar, a za fetchAllAssoc() drugi parametar. Primeri:

// Dobij asocijativni niz nizova indeksiran po polju 'id'.
$result->fetchAllAssoc('id', PDO::FETCH_ASSOC);
// Dobij niz nizova sa i numeričkim i asocijativnim ključevima.
$result->fetchAll(PDO::FETCH_BOTH);

Pošto PHP podržava lančano pozivanje metoda vraćenih objekata, često se promenljiva $result potpuno preskače, na primer:

// Dobij asocijativni niz id-ova ka naslovima.
$examples = $connection->query("SELECT id, title FROM {mytable}")->fetchAllKeyed();

// Dobij jedan zapis iz baze.
$myobj = $connection->query("SELECT * FROM {mytable} WHERE example = :example", [':example' => $example])->fetchObject();

// Dobij jednu vrednost iz baze.
$myval = $connection->query("SELECT example FROM {mytable} WHERE id = :id", [':id' => $id])->fetchField();

Ako vam treba običan niz tipa [1, 2, 3, 4, 5], moraćete da prihvatite nešto slično [1=>1, 2=>2, 3=>3, 4=>4, 5=>5]. Ovo možete dobiti pomoću:

$ids = $connection->query("SELECT id FROM {example}")->fetchAllKeyed(0,0);

 

Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.