Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

Աշխատանք տվյալների բազայի հետ Drupal 7-ում - Դաս 7 - Հարցման արդյունքների մշակում (fetch)

12/05/2025, by Ivan

Ընտրության հարցումը միշտ վերադարձնում է հարցման մշակման արդյունքը՝ 0 կամ ավել գրառում։ Կան մի քանի եղանակներ արդյունքը մշակելու համար, որոնք կարող եք օգտագործել ըստ անհրաժեշտության։

Ամենահաճախ օգտագործվող մեթոդը foreach() ցիկլն է՝ արդյունքների միջով անցնելու համար։

<?php
$result = db_query("SELECT nid, title FROM {node}");
foreach ($result as $record) {
  // Աշխատում ենք յուրաքանչյուր $record-ի հետ
  $node = node_load($record->nid);
}
?>

Կախված նրանից, թե ինչ եք ցանկանում անել արդյունքի հետ, կարող եք օգտագործել նաև այլ մեթոդներ՝ մեկ գրառման մշակման համար․

<?php
$record = $result->fetch();            // Լռելյայն՝ որպես օբյեկտ
$record = $result->fetchObject();  // Մշակում է որպես օբյեկտ
$record = $result->fetchAssoc();   // Մշակում է որպես ասոցիատիվ զանգված
?>

Եթե այլ գրառումներ չկան, կվերադարձվի FALSE։ Խորհուրդ է տրվում օգտագործել fetchObject() կամ fetchAssoc(), քանի որ դրանք ավելի հստակ են։ Եթե ցանկանում եք միայն մեկ դաշտի արժեքը վերցնել՝ օգտագործեք՝

<?php
$record = $result->fetchField($column_index);
?>

Որտեղ $column_index-ը լռելյայն 0-ն է։ Եթե ցանկանում եք ստանալ արդյունքների քանակը՝ օգտագործեք՝

<?php
$number_of_rows = $result->rowCount();
?>

Ամբողջ արդյունքը մեկ զանգվածում ստանալու համար՝

<?php
// Վերադարձնում է արդյունքը որպես օբյեկտների ասոցիատիվ զանգված
$result->fetchAll();

// Վերադարձնում է ասոցիատիվ զանգված՝ ըստ ընտրված դաշտի
$result->fetchAllAssoc($field);

// Վերադարձնում է դաշտ 1 => դաշտ 2 զույգերով զանգված
$result->fetchAllKeyed();
$result->fetchAllKeyed(0,2); // Դաշտ 0 => Դաշտ 2
$result->fetchAllKeyed(1,0); // Դաշտ 1 => Դաշտ 0

// Վերադարձնում է միայն մեկ սյունակի արժեքների զանգված
$result->fetchCol();
// Ըստ ցանկության՝ նշված սյունակի
$result->fetchCol($column_index);
?>

fetchAll() և fetchAllAssoc() լռելյայն կիրառում են fetch-ի եղանակը։ Դա կարող եք փոխել՝ նշելով fetch mode պարամետրերը։ fetchAll()-ի դեպքում՝ դա առաջին պարամետրն է, իսկ fetchAllAssoc()-ի դեպքում՝ երկրորդը։

Քանի որ PHP-ում օբյեկտները կարող են շղթայաբար գործարկել մեթոդներ, կարող եք ընդհանրապես չպահպանել $result փոփոխականը՝

<?php
// Ստանում ենք nid և title զույգերով ասոցիատիվ զանգված
$nodes = db_query("SELECT nid, title FROM {node}")->fetchAllKeyed();

// Ստանում ենք մեկ գրառում որպես օբյեկտ
$node = db_query("SELECT * FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchObject();

// Ստանում ենք մեկ դաշտի արժեք
$title = db_query("SELECT title FROM {node} WHERE nid = :nid", array(':nid' => $nid))->fetchField();
?>