Advertisement
Guest User

Select - group/having

a guest
May 5th, 2015
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.67 KB | None | 0 0
  1. <?php
  2. /**
  3.  * PHP Grid Component
  4.  *
  5.  * @author Abu Ghufran <gridphp@gmail.com> - http://www.phpgrid.org
  6.  * @version 1.5.2
  7.  * @license: see license.txt included in package
  8.  */
  9.  
  10. /**
  11.  * To support non-mysql databases (even mysql), see adodb lib documentation below:
  12.  * http://phplens.com/lens/adodb/docs-adodb.htm#connect_ex
  13.  * http://phplens.com/lens/adodb/docs-adodb.htm#drivers
  14.  */
  15. $db_conf = array();
  16. $db_conf["type"] = "mysqli"; // mysql,oci8(for oracle),mssql,postgres,sybase
  17. $db_conf["server"] = "localhost";
  18. $db_conf["user"] = "root";
  19. $db_conf["password"] = "";
  20. $db_conf["database"] = "griddemo";
  21.          
  22. include("../../lib/inc/jqgrid_dist.php");
  23. $g = new jqgrid($db_conf);
  24.  
  25. // set few params
  26. $grid["caption"] = "Sample Grid";
  27. $grid["autowidth"] = true;
  28. $grid["rowNum"] = 50;
  29. $g->set_options($grid);
  30.  
  31. // set database table for CRUD operations
  32. $g->table = "clients";
  33. $g->select_command = "SELECT count(client_id) as client_count, gender FROM clients group by gender";
  34.  
  35. $g->set_columns($cols);
  36.  
  37. $e["on_select"] = array("custom_select","");
  38. $g->set_events($e);
  39.  
  40. function custom_select($d)
  41. {
  42.     // search params
  43.     $search_str = $d["grid"]->strip($d["param"]['filters']);
  44.  
  45.     $search_arr = json_decode($search_str,true);
  46.     $gopr = $search_arr['groupOp'];
  47.     $rule = $search_arr['rules'][0];
  48.  
  49.     // sort by params
  50.     $sidx = $d["param"]['sidx']; // get index row - i.e. user click to sort
  51.     $sord = $d["param"]['sord']; // get the direction
  52.  
  53.     //  if searched some particular field
  54.     if ($rule["field"] == "client_count")
  55.     {
  56.         $d["sql"] = $d["grid"]->select_command." HAVING client_count LIKE '%{$rule["data"]}%'";
  57.        
  58.         $d["sql_count"] = "SELECT count(*) as c FROM
  59.                             (
  60.                             {$d["grid"]->select_command}
  61.                             HAVING client_count LIKE '%{$rule["data"]}%'
  62.                             ) as tbl";
  63.     }
  64. }
  65.  
  66. // render grid
  67. $out = $g->render("list1");
  68. ?>
  69. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  70. <html>
  71. <head>
  72.     <link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/themes/redmond/jquery-ui.custom.css"></link>  
  73.     <link rel="stylesheet" type="text/css" media="screen" href="../../lib/js/jqgrid/css/ui.jqgrid.css"></link> 
  74.    
  75.     <script src="../../lib/js/jquery.min.js" type="text/javascript"></script>
  76.     <script src="../../lib/js/jqgrid/js/i18n/grid.locale-en.js" type="text/javascript"></script>
  77.     <script src="../../lib/js/jqgrid/js/jquery.jqGrid.min.js" type="text/javascript"></script> 
  78.     <script src="../../lib/js/themes/jquery-ui.custom.min.js" type="text/javascript"></script>
  79. </head>
  80. <body>
  81.     You must have SQLite extension installed for this demo.
  82.     <div style="margin:10px">
  83.     <?php echo $out?>
  84.     </div>
  85. </body>
  86. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement