Drupal return number of results in a View

2019-03-15 09:13发布

I have a view in Drupal that filters my content. It brings back 7 rows. All I want to return is the number or results returned(7). Is this possible?

I tried using the View result counter but it returns a number for each results

1 2 3 4 5 6 7

I just need the 7 part.

So in SQL I would do a select count(*)

6条回答
何必那么认真
2楼-- · 2019-03-15 09:29

what you can do is to activate php for the views header/footer and add the following snippet to it:

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

This will print the total number of rows.

If you need the result as a field, you could use the "Views custom field" module, add a php field and run the same snippet.

Regards

Mike

查看更多
干净又极端
3楼-- · 2019-03-15 09:31

If using views_get_view in Views 3, you can use this snippet:

    $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;
    }
查看更多
Anthone
4楼-- · 2019-03-15 09:44

with drupal 7 - Under the pager options you have the option to Expose items per page When checked, users can determine how many items per page show in a view

查看更多
一夜七次
5楼-- · 2019-03-15 09:48

With Views 3 you may need to do

$view->get_total_rows = TRUE;
$total_items = $view->query->pager->get_total_items();
查看更多
【Aperson】
6楼-- · 2019-03-15 09:51

If you want to get the count outside the view you can use this

$view = views_get_view('MY_VIEW_NAME');

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

$view->render();   

print sizeof($view->result);

Note : Do not use this within a view. It will be an overhead. If you are using it within view check the other answers.

查看更多
相关推荐>>
7楼-- · 2019-03-15 09:51

This works well for me and deals with the pager issues. Put this function in your custom module, rename / format as needed, and call it from your views-view--*view_name_goes_here*.tpl.php files.

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>";
 }
}
查看更多
登录 后发表回答