db_select join probléma

morfin képe

Sziasztok!

Basic cart modult alakítgattam kicsit a saját igényeimhez. Kiegészítgettem néhány mezővel és a rendelés kezelőjéhez is készítettem egy alternatív táblázatot/page-t. Egy plusz menü hook-kal lezárható a megrendelés ami bejegyzi az aktuális időt a deldolgozva_dt mezőmbe. Eddig sikerült megoldanom a feladatot, de itt -gondolom egy nagyon láma- kérdéssel elakadtam:

  1. $result = db_select('node', 'n')
  2. // ->join('field_data_field_feldolgozva_dt','f','f.entity_id = n.nid')
  3. ->fields('n',array('nid','title','created'))
  4. // ->fields('f',array('field_feldolgozva_dt_value'))
  5. ->condition('n.type','order','=')
  6. ->extend('PagerDefault')->limit(5)
  7. // ->orderBy('f.field_feldolgozva_dt_value', 'ASC')
  8. ->execute()->fetchAll();

A kikommentelt sorok nélkül műxik a lekérdezés, de nekem az kéne hogy a még függő megrendelések legyenek elöl. Hogyan kell korrekten bekötni egy lekérdezésbe ezeket az extra mezőket? -Köszönöm!
Taxonomy upgrade extras: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
dj képe

$query = db_select('node', 'n')
  ->fields('n', array('nid','title','created'))
  ->condition('n.type','order');
$query->join('field_data_field_feldolgozva_dt','f','f.entity_id = n.nid');
$query->addField('f', 'field_feldolgozva_dt_value');
$query->orderBy('f.field_feldolgozva_dt_value', 'ASC');
$query->extend('PagerDefault')->limit(5);
$result = $query->execute()->fetchAll();
1
0

Üdv!
Dudás József

morfin képe

Én is most találtam rá a megoldásra:

  1. $q= db_select('node', 'n');
  2. $q->leftJoin('field_data_field_feldolgozva_dt','f','n.nid=f.entity_id');
  3. $q= $q->fields('n',array('nid','title','created'))
  4. ->fields('f',array('field_feldolgozva_dt_value'))
  5. ->condition('n.type','order','=')
  6. ->extend('PagerDefault')->limit(5)
  7. ->orderBy('f.field_feldolgozva_dt_value', 'ASC')
  8. ;
  9. $result = $q->execute()->fetchAll();

-tehát ha jól értelmezem a db_select-es join-ok eljárásként az összes többi pedig önmagukat visszaadó függvényként viselkedik? -Ebben mi a ráció?

Köszönöm még egyszer a segítséged!

0
0

Üdv!

chx képe

Ha field data tablat csatolsz a lekerdezesedben akkor rosszul csinalod. Erre EntityFieldQuery valo.

$query = new EntityFieldQuery
$result = $query
  ->entityCondition('entity_type', 'node')
  ->entityCondition('bundle', 'order')
  ->fieldOrderBy('field_feldolgozva_dt', 'value', 'ASC')
  ->pager(5)
  ->execute();
if (!empty($result['node'])) {
  $nodes = node_load_multiple(array_keys($result['node']));
}
1
0