SQL-запрос для модуля Drupal 7 - PullRequest
       6

SQL-запрос для модуля Drupal 7

1 голос
/ 26 августа 2011

Этот запрос, с которым я работал и работал с видом.

(предполагается передать идентификатор узла и вернуть все узлы, которые имеют этот идентификатор узла в качестве ссылки на узел)

function jsonview_node_update($node){
  if ($node->type == "company") {
    $query = "SELECT DISTINCT node.title AS node_title, node.nid AS nid
              FROM {node} node
              LEFT JOIN field_data_field_campaigncompany ON node.nid = field_data_field_campaigncompany.entity_id AND (field_data_field_campaigncompany.entity_type = node AND field_data_field_campaigncompany.deleted = 0)
              WHERE (( (node.status = '1') AND (field_data_field_campaigncompany.field_campaigncompany_nid IN  ('".$node->nid."')) AND (node.type IN  ('campaign')) ))";
    $result = db_query($query);
    file_put_contents('/tmp/ref.txt',json_encode($result));
  }

возвращается

PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'node' in 'on clause': SELECT DISTINCT node.title AS node_title, node.nid AS nid FROM {node} node LEFT JOIN field_data_field_campaigncompany ON node.nid = field_data_field_campaigncompany.entity_id AND (field_data_field_campaigncompany.entity_type = node AND field_data_field_campaigncompany.deleted = 0) WHERE (( (node.status = '1') AND (field_data_field_campaigncompany.field_campaigncompany_nid IN ('14')) AND (node.type IN ('campaign')) )); Array ( ) in jsonview_node_update() (line 224 of /jsonview.module).

Не уверен, что здесь не так ... Я опробовал отношения и пару других модулей, и ни один из них не справился с задачей

1 Ответ

0 голосов
/ 31 января 2015

(Ответ на вопрос редактируется. Преобразован в вики-ответ сообщества. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )

ОП написал:

решена:

function jsonview_node_update($node){
  if ($node->type == "company") {
    $query = "SELECT DISTINCT title, nid
              FROM {node} node
              LEFT JOIN field_data_field_campaigncompany ON node.nid = field_data_field_campaigncompany.entity_id AND (field_data_field_campaigncompany.entity_type = 'node' AND field_data_field_campaigncompany.deleted = 0)
              WHERE (( (node.status = '1') AND (field_data_field_campaigncompany.field_campaigncompany_nid IN  ('".$node->nid."')) AND (node.type IN  ('campaign')) ))";
 //   $query = "SELECT nid, title FROM {node}";
   $result = db_query($query);
  //  $result = db_query("SELECT nid, title FROM {node}");
    foreach ($result as $record) {
       file_put_contents('/tmp/ref.txt',json_encode($record),FILE_APPEND);
  // Do something with each $record
}

  }
}
...