最好的方法在Drupal 7 Tpl文件中使用db_select?

时间:2019-10-20 11:01:36

标签: drupal-7 drupal-modules drupal-theming

有人可以建议我如何在.tpl文件中编写SQL查询吗?

我试图写db_select('node','n');但这不是最好的方法!我试图在template.php中写这个,但是不行!

我的代码在tpl中运行良好!

请给我一个在tpl文件中编写sql查询的解决方案

我的查询:

    $node = $variables['node'];
    $author = user_load($node->uid);
    $query = db_select('node', 'n')
    ->condition('n.uid', $author->uid, '=')
    ->condition('type', 'agahi');
    $count_query = $query->countQuery()->execute()->fetchField();
    print $count_query;

1 个答案:

答案 0 :(得分:1)

在主题template.php文件中,使用预处理功能,例如,用于从mysql获取一些数据并将其传递给node.tpl

function ample_preprocess_node(&$variables) {
  if( $variables['type'] == 'your_content_type_name') {
    $queryresult = db_select('tablename', 'tn')
      ->fields('n')
      ->condition('field_name', 123,'=')
      ->execute()
      ->fetchAll();
  foreach ($queryresult as $queryres) {
    $your_variable_name = $queryres->table_col_name;
  }  
    $variables['your-variable-name'] = $your_variable_name;
  }
}

然后在您的节点中输入--your_content_type_name.tpl.php 打印$ your_variable_name;