如何构建db_select,->;使用php将drupal中的字段与值进行比较的条件

如何构建db_select,->;使用php将drupal中的字段与值进行比较的条件,php,mysql,drupal,drupal-7,Php,Mysql,Drupal,Drupal 7,我试图用php中的sql结果创建一个字段。我试图用“manifestacionType”字段创建一个条件,并与值“compuesta”进行比较 问题是我不知道该怎么做。我认为问题在于n.manifestacionType无法访问此字段的实际值,并且从不进行比较。我尝试了一些东西,比如['und']['value'],使用->节点,但没有任何效果!!!我不知道该怎么建这个。我太失望了 这是我的密码: $query = db_select('node', 'n') ->fiel

我试图用php中的sql结果创建一个字段。我试图用“manifestacionType”字段创建一个条件,并与值“compuesta”进行比较

问题是我不知道该怎么做。我认为问题在于n.manifestacionType无法访问此字段的实际值,并且从不进行比较。我尝试了一些东西,比如['und']['value'],使用->节点,但没有任何效果!!!我不知道该怎么建这个。我太失望了

这是我的密码:

$query = db_select('node', 'n')
        ->fields('n', array('nid', 'title'))
        ->condition('n.type', 'manifestacion_cultural', '=')
        ->condition('status', 1,'=')
      **->condition('n.manifestacionType', 'compuesta', '=')**
                ->orderBy('title');
$result = $query->execute()->fetchAllKeyed();
return $result;
结果是什么都没有,如果我删除**中的条件,我将收到状态为1(已发布)的所有“文化宣言”。我需要添加一个过滤器,该过滤器的条件是只接收带有“manifestacionType”(此字段)=“compuesta”的文件。最有可能的是,有一些更好的解决方案来创建一个字段,或者用一些方法来完成这个查询,但是我不知道怎么做


非常感谢

我不知道我是否正确回答了你的问题,因此,如果不符合你的要求,请纠正我:

您有一个名为“manifestacion Type”的字段,然后您希望获得内容类型为“manifestacion_cultural”且“manifestacion Type”字段值等于“compuesta”的节点结果

在这种情况下,您需要使用节点表和“manifestacion Type”字段表之间的联接来构建db_select,请访问您的数据库并检查“manifestacion Type”字段表的名称,drupal始终创建这样的字段表:field_data_fiel_machine_name

$query = db_select('node', 'n')
  ->fields('n', array('nid', 'title'))
  ->condition('n.type', 'manifestacion_cultural', '=')
  ->condition('status', 1, '=');
  ->join('fiel_data_manifestacionType_table', 'mt', 'n.nid = mt.nid'); 
  ->condition('mt.fiel_manifestacionType_value', 'compuesta', '=');
  ->orderBy('n.title', 'ASC');

$result = $query->execute()->fetchAllKeyed(); 

谁也帮不了我?