annotate DataTables-1.9.4/examples/server_side/server_side.html @ 2:3c160414da2e default tip

initial upload
author shiltemann
date Thu, 26 Feb 2015 14:05:23 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
3c160414da2e initial upload
shiltemann
parents:
diff changeset
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
2 <html>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
3 <head>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
4 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
3c160414da2e initial upload
shiltemann
parents:
diff changeset
5 <link rel="shortcut icon" type="image/ico" href="http://www.datatables.net/media/images/favicon.ico" />
3c160414da2e initial upload
shiltemann
parents:
diff changeset
6
3c160414da2e initial upload
shiltemann
parents:
diff changeset
7 <title>DataTables example</title>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
8 <style type="text/css" title="currentStyle">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
9 @import "../../media/css/demo_page.css";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
10 @import "../../media/css/demo_table.css";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
11 </style>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
12 <script type="text/javascript" language="javascript" src="../../media/js/jquery.js"></script>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
13 <script type="text/javascript" language="javascript" src="../../media/js/jquery.dataTables.js"></script>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
14 <script type="text/javascript" charset="utf-8">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
15 $(document).ready(function() {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
16 $('#example').dataTable( {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
17 "bProcessing": true,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
18 "bServerSide": true,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
19 "sAjaxSource": "scripts/server_processing.php"
3c160414da2e initial upload
shiltemann
parents:
diff changeset
20 } );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
21 } );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
22 </script>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
23 </head>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
24 <body id="dt_example">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
25 <div id="container">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
26 <div class="full_width big">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
27 DataTables server-side processing example
3c160414da2e initial upload
shiltemann
parents:
diff changeset
28 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
29
3c160414da2e initial upload
shiltemann
parents:
diff changeset
30 <h1>Preamble</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
31 <p>There are many ways to get your data into DataTables, and if you are working with seriously large databases, you might want to consider using the server-side options that DataTables provides. Basically all of the paging, filtering, sorting etc that DataTables does can be handed off to a server (or any other data source - Google Gears or Adobe Air for example!) and DataTables is just an events and display module.</p>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
32 <p>The example here shows a very simple display of the CSS data (used in all my other examples), but in this instance coming from the server on each draw. Filtering, multi-column sorting etc all work as you would expect.</p>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
33
3c160414da2e initial upload
shiltemann
parents:
diff changeset
34 <h1>Live example</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
35 <div id="dynamic">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
36 <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
37 <thead>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
38 <tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
39 <th width="20%">Rendering engine</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
40 <th width="25%">Browser</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
41 <th width="25%">Platform(s)</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
42 <th width="15%">Engine version</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
43 <th width="15%">CSS grade</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
44 </tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
45 </thead>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
46 <tbody>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
47 <tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
48 <td colspan="5" class="dataTables_empty">Loading data from server</td>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
49 </tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
50 </tbody>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
51 <tfoot>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
52 <tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
53 <th>Rendering engine</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
54 <th>Browser</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
55 <th>Platform(s)</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
56 <th>Engine version</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
57 <th>CSS grade</th>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
58 </tr>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
59 </tfoot>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
60 </table>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
61 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
62 <div class="spacer"></div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
63
3c160414da2e initial upload
shiltemann
parents:
diff changeset
64
3c160414da2e initial upload
shiltemann
parents:
diff changeset
65 <h1>Initialisation code</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
66 <pre class="brush: js;">$(document).ready(function() {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
67 $('#example').dataTable( {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
68 "bProcessing": true,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
69 "bServerSide": true,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
70 "sAjaxSource": "scripts/server_processing.php"
3c160414da2e initial upload
shiltemann
parents:
diff changeset
71 } );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
72 } );</pre>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
73 <style type="text/css">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
74 @import "../examples_support/syntax/css/shCore.css";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
75 </style>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
76 <script type="text/javascript" language="javascript" src="../examples_support/syntax/js/shCore.js"></script>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
77
3c160414da2e initial upload
shiltemann
parents:
diff changeset
78 <h1>Server response</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
79 <p>The code below shows the latest JSON data that has been returned from the server in response to the Ajax request made by DataTables. This will update as further requests are made.</p>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
80 <pre id="latest_xhr" class="brush: js;"></pre>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
81
3c160414da2e initial upload
shiltemann
parents:
diff changeset
82 <h1>Server side (PHP) code</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
83 <pre>&lt;?php
3c160414da2e initial upload
shiltemann
parents:
diff changeset
84 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3c160414da2e initial upload
shiltemann
parents:
diff changeset
85 * Easy set variables
3c160414da2e initial upload
shiltemann
parents:
diff changeset
86 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
87
3c160414da2e initial upload
shiltemann
parents:
diff changeset
88 /* Array of database columns which should be read and sent back to DataTables. Use a space where
3c160414da2e initial upload
shiltemann
parents:
diff changeset
89 * you want to insert a non-database field (for example a counter or static image)
3c160414da2e initial upload
shiltemann
parents:
diff changeset
90 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
91 $aColumns = array( 'engine', 'browser', 'platform', 'version', 'grade' );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
92
3c160414da2e initial upload
shiltemann
parents:
diff changeset
93 /* Indexed column (used for fast and accurate table cardinality) */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
94 $sIndexColumn = "id";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
95
3c160414da2e initial upload
shiltemann
parents:
diff changeset
96 /* DB table to use */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
97 $sTable = "ajax";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
98
3c160414da2e initial upload
shiltemann
parents:
diff changeset
99 /* Database connection information */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
100 $gaSql['user'] = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
101 $gaSql['password'] = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
102 $gaSql['db'] = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
103 $gaSql['server'] = "localhost";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
104
3c160414da2e initial upload
shiltemann
parents:
diff changeset
105 /* REMOVE THIS LINE (it just includes my SQL connection user/pass) */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
106 include( $_SERVER['DOCUMENT_ROOT']."/datatables/mysql.php" );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
107
3c160414da2e initial upload
shiltemann
parents:
diff changeset
108
3c160414da2e initial upload
shiltemann
parents:
diff changeset
109 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
3c160414da2e initial upload
shiltemann
parents:
diff changeset
110 * If you just want to use the basic configuration for DataTables with PHP server-side, there is
3c160414da2e initial upload
shiltemann
parents:
diff changeset
111 * no need to edit below this line
3c160414da2e initial upload
shiltemann
parents:
diff changeset
112 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
113
3c160414da2e initial upload
shiltemann
parents:
diff changeset
114 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
115 * Local functions
3c160414da2e initial upload
shiltemann
parents:
diff changeset
116 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
117 function fatal_error ( $sErrorMessage = '' )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
118 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
119 header( $_SERVER['SERVER_PROTOCOL'] .' 500 Internal Server Error' );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
120 die( $sErrorMessage );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
121 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
122
3c160414da2e initial upload
shiltemann
parents:
diff changeset
123
3c160414da2e initial upload
shiltemann
parents:
diff changeset
124 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
125 * MySQL connection
3c160414da2e initial upload
shiltemann
parents:
diff changeset
126 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
127 if ( ! $gaSql['link'] = mysql_pconnect( $gaSql['server'], $gaSql['user'], $gaSql['password'] ) )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
128 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
129 fatal_error( 'Could not open connection to server' );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
130 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
131
3c160414da2e initial upload
shiltemann
parents:
diff changeset
132 if ( ! mysql_select_db( $gaSql['db'], $gaSql['link'] ) )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
133 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
134 fatal_error( 'Could not select database ' );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
135 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
136
3c160414da2e initial upload
shiltemann
parents:
diff changeset
137
3c160414da2e initial upload
shiltemann
parents:
diff changeset
138 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
139 * Paging
3c160414da2e initial upload
shiltemann
parents:
diff changeset
140 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
141 $sLimit = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
142 if ( isset( $_GET['iDisplayStart'] ) &amp;&amp; $_GET['iDisplayLength'] != '-1' )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
143 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
144 $sLimit = "LIMIT ".intval( $_GET['iDisplayStart'] ).", ".
3c160414da2e initial upload
shiltemann
parents:
diff changeset
145 intval( $_GET['iDisplayLength'] );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
146 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
147
3c160414da2e initial upload
shiltemann
parents:
diff changeset
148
3c160414da2e initial upload
shiltemann
parents:
diff changeset
149 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
150 * Ordering
3c160414da2e initial upload
shiltemann
parents:
diff changeset
151 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
152 $sOrder = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
153 if ( isset( $_GET['iSortCol_0'] ) )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
154 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
155 $sOrder = "ORDER BY ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
156 for ( $i=0 ; $i&lt;intval( $_GET['iSortingCols'] ) ; $i++ )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
157 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
158 if ( $_GET[ 'bSortable_'.intval($_GET['iSortCol_'.$i]) ] == "true" )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
159 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
160 $sOrder .= "`".$aColumns[ intval( $_GET['iSortCol_'.$i] ) ]."` ".
3c160414da2e initial upload
shiltemann
parents:
diff changeset
161 ($_GET['sSortDir_'.$i]==='asc' ? 'asc' : 'desc') .", ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
162 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
163 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
164
3c160414da2e initial upload
shiltemann
parents:
diff changeset
165 $sOrder = substr_replace( $sOrder, "", -2 );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
166 if ( $sOrder == "ORDER BY" )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
167 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
168 $sOrder = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
169 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
170 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
171
3c160414da2e initial upload
shiltemann
parents:
diff changeset
172
3c160414da2e initial upload
shiltemann
parents:
diff changeset
173 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
174 * Filtering
3c160414da2e initial upload
shiltemann
parents:
diff changeset
175 * NOTE this does not match the built-in DataTables filtering which does it
3c160414da2e initial upload
shiltemann
parents:
diff changeset
176 * word by word on any field. It's possible to do here, but concerned about efficiency
3c160414da2e initial upload
shiltemann
parents:
diff changeset
177 * on very large tables, and MySQL's regex functionality is very limited
3c160414da2e initial upload
shiltemann
parents:
diff changeset
178 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
179 $sWhere = "";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
180 if ( isset($_GET['sSearch']) &amp;&amp; $_GET['sSearch'] != "" )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
181 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
182 $sWhere = "WHERE (";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
183 for ( $i=0 ; $i&lt;count($aColumns) ; $i++ )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
184 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
185 $sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
186 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
187 $sWhere = substr_replace( $sWhere, "", -3 );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
188 $sWhere .= ')';
3c160414da2e initial upload
shiltemann
parents:
diff changeset
189 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
190
3c160414da2e initial upload
shiltemann
parents:
diff changeset
191 /* Individual column filtering */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
192 for ( $i=0 ; $i&lt;count($aColumns) ; $i++ )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
193 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
194 if ( isset($_GET['bSearchable_'.$i]) &amp;&amp; $_GET['bSearchable_'.$i] == "true" &amp;&amp; $_GET['sSearch_'.$i] != '' )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
195 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
196 if ( $sWhere == "" )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
197 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
198 $sWhere = "WHERE ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
199 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
200 else
3c160414da2e initial upload
shiltemann
parents:
diff changeset
201 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
202 $sWhere .= " AND ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
203 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
204 $sWhere .= "`".$aColumns[$i]."` LIKE '%".mysql_real_escape_string($_GET['sSearch_'.$i])."%' ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
205 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
206 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
207
3c160414da2e initial upload
shiltemann
parents:
diff changeset
208
3c160414da2e initial upload
shiltemann
parents:
diff changeset
209 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
210 * SQL queries
3c160414da2e initial upload
shiltemann
parents:
diff changeset
211 * Get data to display
3c160414da2e initial upload
shiltemann
parents:
diff changeset
212 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
213 $sQuery = "
3c160414da2e initial upload
shiltemann
parents:
diff changeset
214 SELECT SQL_CALC_FOUND_ROWS `".str_replace(" , ", " ", implode("`, `", $aColumns))."`
3c160414da2e initial upload
shiltemann
parents:
diff changeset
215 FROM $sTable
3c160414da2e initial upload
shiltemann
parents:
diff changeset
216 $sWhere
3c160414da2e initial upload
shiltemann
parents:
diff changeset
217 $sOrder
3c160414da2e initial upload
shiltemann
parents:
diff changeset
218 $sLimit
3c160414da2e initial upload
shiltemann
parents:
diff changeset
219 ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
220 $rResult = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
221
3c160414da2e initial upload
shiltemann
parents:
diff changeset
222 /* Data set length after filtering */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
223 $sQuery = "
3c160414da2e initial upload
shiltemann
parents:
diff changeset
224 SELECT FOUND_ROWS()
3c160414da2e initial upload
shiltemann
parents:
diff changeset
225 ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
226 $rResultFilterTotal = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
227 $aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);
3c160414da2e initial upload
shiltemann
parents:
diff changeset
228 $iFilteredTotal = $aResultFilterTotal[0];
3c160414da2e initial upload
shiltemann
parents:
diff changeset
229
3c160414da2e initial upload
shiltemann
parents:
diff changeset
230 /* Total data set length */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
231 $sQuery = "
3c160414da2e initial upload
shiltemann
parents:
diff changeset
232 SELECT COUNT(`".$sIndexColumn."`)
3c160414da2e initial upload
shiltemann
parents:
diff changeset
233 FROM $sTable
3c160414da2e initial upload
shiltemann
parents:
diff changeset
234 ";
3c160414da2e initial upload
shiltemann
parents:
diff changeset
235 $rResultTotal = mysql_query( $sQuery, $gaSql['link'] ) or fatal_error( 'MySQL Error: ' . mysql_errno() );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
236 $aResultTotal = mysql_fetch_array($rResultTotal);
3c160414da2e initial upload
shiltemann
parents:
diff changeset
237 $iTotal = $aResultTotal[0];
3c160414da2e initial upload
shiltemann
parents:
diff changeset
238
3c160414da2e initial upload
shiltemann
parents:
diff changeset
239
3c160414da2e initial upload
shiltemann
parents:
diff changeset
240 /*
3c160414da2e initial upload
shiltemann
parents:
diff changeset
241 * Output
3c160414da2e initial upload
shiltemann
parents:
diff changeset
242 */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
243 $output = array(
3c160414da2e initial upload
shiltemann
parents:
diff changeset
244 "sEcho" =&gt; intval($_GET['sEcho']),
3c160414da2e initial upload
shiltemann
parents:
diff changeset
245 "iTotalRecords" =&gt; $iTotal,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
246 "iTotalDisplayRecords" =&gt; $iFilteredTotal,
3c160414da2e initial upload
shiltemann
parents:
diff changeset
247 "aaData" =&gt; array()
3c160414da2e initial upload
shiltemann
parents:
diff changeset
248 );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
249
3c160414da2e initial upload
shiltemann
parents:
diff changeset
250 while ( $aRow = mysql_fetch_array( $rResult ) )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
251 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
252 $row = array();
3c160414da2e initial upload
shiltemann
parents:
diff changeset
253 for ( $i=0 ; $i&lt;count($aColumns) ; $i++ )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
254 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
255 if ( $aColumns[$i] == "version" )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
256 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
257 /* Special output formatting for 'version' column */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
258 $row[] = ($aRow[ $aColumns[$i] ]=="0") ? '-' : $aRow[ $aColumns[$i] ];
3c160414da2e initial upload
shiltemann
parents:
diff changeset
259 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
260 else if ( $aColumns[$i] != ' ' )
3c160414da2e initial upload
shiltemann
parents:
diff changeset
261 {
3c160414da2e initial upload
shiltemann
parents:
diff changeset
262 /* General output */
3c160414da2e initial upload
shiltemann
parents:
diff changeset
263 $row[] = $aRow[ $aColumns[$i] ];
3c160414da2e initial upload
shiltemann
parents:
diff changeset
264 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
265 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
266 $output['aaData'][] = $row;
3c160414da2e initial upload
shiltemann
parents:
diff changeset
267 }
3c160414da2e initial upload
shiltemann
parents:
diff changeset
268
3c160414da2e initial upload
shiltemann
parents:
diff changeset
269 echo json_encode( $output );
3c160414da2e initial upload
shiltemann
parents:
diff changeset
270 ?&gt;</pre>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
271
3c160414da2e initial upload
shiltemann
parents:
diff changeset
272
3c160414da2e initial upload
shiltemann
parents:
diff changeset
273 <h1>Other examples</h1>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
274 <div class="demo_links">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
275 <h2>Basic initialisation</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
276 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
277 <li><a href="../basic_init/zero_config.html">Zero configuration</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
278 <li><a href="../basic_init/filter_only.html">Feature enablement</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
279 <li><a href="../basic_init/table_sorting.html">Sorting data</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
280 <li><a href="../basic_init/multi_col_sort.html">Multi-column sorting</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
281 <li><a href="../basic_init/multiple_tables.html">Multiple tables</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
282 <li><a href="../basic_init/hidden_columns.html">Hidden columns</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
283 <li><a href="../basic_init/complex_header.html">Complex headers - grouping with colspan</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
284 <li><a href="../basic_init/dom.html">DOM positioning</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
285 <li><a href="../basic_init/flexible_width.html">Flexible table width</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
286 <li><a href="../basic_init/state_save.html">State saving</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
287 <li><a href="../basic_init/alt_pagination.html">Alternative pagination styles</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
288 <li>Scrolling: <br>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
289 <a href="../basic_init/scroll_x.html">Horizontal</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
290 <a href="../basic_init/scroll_y.html">Vertical</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
291 <a href="../basic_init/scroll_xy.html">Both</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
292 <a href="../basic_init/scroll_y_theme.html">Themed</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
293 <a href="../basic_init/scroll_y_infinite.html">Infinite</a>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
294 </li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
295 <li><a href="../basic_init/language.html">Change language information (internationalisation)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
296 <li><a href="../basic_init/themes.html">ThemeRoller themes (Smoothness)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
297 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
298
3c160414da2e initial upload
shiltemann
parents:
diff changeset
299 <h2>Advanced initialisation</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
300 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
301 <li>Events: <br>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
302 <a href="../advanced_init/events_live.html">Live events</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
303 <a href="../advanced_init/events_pre_init.html">Pre-init</a> /
3c160414da2e initial upload
shiltemann
parents:
diff changeset
304 <a href="../advanced_init/events_post_init.html">Post-init</a>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
305 </li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
306 <li><a href="../advanced_init/column_render.html">Column rendering</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
307 <li><a href="../advanced_init/html_sort.html">Sorting without HTML tags</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
308 <li><a href="../advanced_init/dom_multiple_elements.html">Multiple table controls (sDom)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
309 <li><a href="../advanced_init/length_menu.html">Defining length menu options</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
310 <li><a href="../advanced_init/complex_header.html">Complex headers and hidden columns</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
311 <li><a href="../advanced_init/dom_toolbar.html">Custom toolbar (element) around table</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
312 <li><a href="../advanced_init/highlight.html">Row highlighting with CSS</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
313 <li><a href="../advanced_init/row_grouping.html">Row grouping</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
314 <li><a href="../advanced_init/row_callback.html">Row callback</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
315 <li><a href="../advanced_init/footer_callback.html">Footer callback</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
316 <li><a href="../advanced_init/sorting_control.html">Control sorting direction of columns</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
317 <li><a href="../advanced_init/language_file.html">Change language information from a file (internationalisation)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
318 <li><a href="../advanced_init/defaults.html">Setting defaults</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
319 <li><a href="../advanced_init/localstorage.html">State saving with localStorage</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
320 <li><a href="../advanced_init/dt_events.html">Custom events</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
321 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
322
3c160414da2e initial upload
shiltemann
parents:
diff changeset
323 <h2>API</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
324 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
325 <li><a href="../api/add_row.html">Dynamically add a new row</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
326 <li><a href="../api/multi_filter.html">Individual column filtering (using "input" elements)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
327 <li><a href="../api/multi_filter_select.html">Individual column filtering (using "select" elements)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
328 <li><a href="../api/highlight.html">Highlight rows and columns</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
329 <li><a href="../api/row_details.html">Show and hide details about a particular record</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
330 <li><a href="../api/select_row.html">User selectable rows (multiple rows)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
331 <li><a href="../api/select_single_row.html">User selectable rows (single row) and delete rows</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
332 <li><a href="../api/editable.html">Editable rows (with jEditable)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
333 <li><a href="../api/form.html">Submit form with elements in table</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
334 <li><a href="../api/counter_column.html">Index column (static number column)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
335 <li><a href="../api/show_hide.html">Show and hide columns dynamically</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
336 <li><a href="../api/api_in_init.html">API function use in initialisation object (callback)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
337 <li><a href="../api/tabs_and_scrolling.html">DataTables scrolling and tabs</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
338 <li><a href="../api/regex.html">Regular expression filtering</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
339 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
340 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
341
3c160414da2e initial upload
shiltemann
parents:
diff changeset
342 <div class="demo_links">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
343 <h2>Data sources</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
344 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
345 <li><a href="../data_sources/dom.html">DOM</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
346 <li><a href="../data_sources/js_array.html">Javascript array</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
347 <li><a href="../data_sources/ajax.html">Ajax source</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
348 <li><a href="../data_sources/server_side.html">Server side processing</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
349 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
350
3c160414da2e initial upload
shiltemann
parents:
diff changeset
351 <h2>Server-side processing</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
352 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
353 <li><a href="../server_side/server_side.html">Obtain server-side data</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
354 <li><a href="../server_side/custom_vars.html">Add extra HTTP variables</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
355 <li><a href="../server_side/post.html">Use HTTP POST</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
356 <li><a href="../server_side/ids.html">Automatic addition of IDs and classes to rows</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
357 <li><a href="../server_side/object_data.html">Reading table data from objects</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
358 <li><a href="../server_side/row_details.html">Show and hide details about a particular record</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
359 <li><a href="../server_side/select_rows.html">User selectable rows (multiple rows)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
360 <li><a href="../server_side/jsonp.html">JSONP for a cross domain data source</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
361 <li><a href="../server_side/editable.html">jEditable integration with DataTables</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
362 <li><a href="../server_side/defer_loading.html">Deferred loading of Ajax data</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
363 <li><a href="../server_side/pipeline.html">Pipelining data (reduce Ajax calls for paging)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
364 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
365
3c160414da2e initial upload
shiltemann
parents:
diff changeset
366 <h2>Ajax data source</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
367 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
368 <li><a href="../ajax/ajax.html">Ajax sourced data (array of arrays)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
369 <li><a href="../ajax/objects.html">Ajax sourced data (array of objects)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
370 <li><a href="../ajax/defer_render.html">Deferred DOM creation for extra speed</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
371 <li><a href="../ajax/null_data_source.html">Empty data source columns</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
372 <li><a href="../ajax/custom_data_property.html">Use a data source other than aaData (the default)</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
373 <li><a href="../ajax/objects_subarrays.html">Read column data from sub-arrays</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
374 <li><a href="../ajax/deep.html">Read column data from deeply nested properties</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
375 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
376
3c160414da2e initial upload
shiltemann
parents:
diff changeset
377 <h2>Plug-ins</h2>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
378 <ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
379 <li><a href="../plug-ins/plugin_api.html">Add custom API functions</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
380 <li><a href="../plug-ins/sorting_plugin.html">Sorting and automatic type detection</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
381 <li><a href="../plug-ins/sorting_sType.html">Sorting without automatic type detection</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
382 <li><a href="../plug-ins/paging_plugin.html">Custom pagination controls</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
383 <li><a href="../plug-ins/range_filtering.html">Range filtering / custom filtering</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
384 <li><a href="../plug-ins/dom_sort.html">Live DOM sorting</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
385 <li><a href="../plug-ins/html_sort.html">Automatic HTML type detection</a></li>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
386 </ul>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
387 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
388
3c160414da2e initial upload
shiltemann
parents:
diff changeset
389
3c160414da2e initial upload
shiltemann
parents:
diff changeset
390 <div id="footer" class="clear" style="text-align:center;">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
391 <p>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
392 Please refer to the <a href="http://www.datatables.net/usage">DataTables documentation</a> for full information about its API properties and methods.<br>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
393 Additionally, there are a wide range of <a href="http://www.datatables.net/extras">extras</a> and <a href="http://www.datatables.net/plug-ins">plug-ins</a> which extend the capabilities of DataTables.
3c160414da2e initial upload
shiltemann
parents:
diff changeset
394 </p>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
395
3c160414da2e initial upload
shiltemann
parents:
diff changeset
396 <span style="font-size:10px;">
3c160414da2e initial upload
shiltemann
parents:
diff changeset
397 DataTables designed and created by <a href="http://www.sprymedia.co.uk">Allan Jardine</a> &copy; 2007-2011<br>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
398 DataTables is dual licensed under the <a href="http://www.datatables.net/license_gpl2">GPL v2 license</a> or a <a href="http://www.datatables.net/license_bsd">BSD (3-point) license</a>.
3c160414da2e initial upload
shiltemann
parents:
diff changeset
399 </span>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
400 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
401 </div>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
402 </body>
3c160414da2e initial upload
shiltemann
parents:
diff changeset
403 </html>