Drupal返回视图中的结果数

时间:2010-06-04 12:17:51

标签: drupal drupal-6 drupal-views

我在Drupal中有一个过滤我内容的视图。它带回了7行。我要返回的只是返回的数字或结果(7)。这可能吗?

我尝试使用查看结果计数器,但它为每个结果返回一个数字

1 2 3 4 五 6 7

我只需要7部分。

所以在SQL中我会做一个select count(*)

6 个答案:

答案 0 :(得分:17)

您可以做的是为视图页眉/页脚激活php并将以下代码段添加到其中:

<?php
  $view = views_get_current_view();
  print $view->total_rows; 
?>

这将打印总行数。

如果您需要将结果作为字段,则可以使用“视图自定义字段”module,添加php字段并运行相同的代码段。

问候

麦克

答案 1 :(得分:5)

如果您想在视图外获取计数,可以使用此

$view = views_get_view('MY_VIEW_NAME');

$view->set_display('MY_DISPLAY'); // like 'block_1'    

$view->render();   

print sizeof($view->result);

注意:请勿在视图中使用此功能。这将是一个开销。如果您在视图中使用它,请检查其他答案。

答案 2 :(得分:3)

如果在视图3中使用views_get_view,则可以使用此代码段:

    $view = views_get_view('MY_VIEW');
    $view->set_display('MY_DISPLAY');
    // Execute first
    $result = $view->preview('MY_DISPLAY');
    // Output result only if rows > 0
    if (count($view->result) > 0) {
      print $result;
    }

答案 3 :(得分:1)

这适用于我并处理寻呼机问题。将此函数放入自定义模块中,根据需要重命名/格式化,并从views-view - * view_name_goes_here * .tpl.php文件中调用它。

function get_view_rowcount(){

 $view = views_get_current_view();
 $page_total = count($view->result);
 if(isset($view->total_rows)){
   return "<strong>Displaying " . $page_total . " of " . $view->total_rows . " total rows.</strong>";
 } else {
  return "<strong>Displaying " . $page_total . " of " . $page_total . " total rows.</strong>";
 }
}

答案 4 :(得分:1)

使用视图3,您可能需要执行

$view->get_total_rows = TRUE;
$total_items = $view->query->pager->get_total_items();

答案 5 :(得分:0)

with drupal 7 - 在寻呼机选项下你可以选择 每页显示项目 选中后,用户可以确定每个页面在视图中显示的项目数