0
$where = ($criteria == '' ? '' : "WHERE $criteria");
0
$query = "SELECT DISTINCT $fields FROM $tables $where ORDER BY name";
0
- $offset = $pagesize * ($page-1);
0
- $query .= " LIMIT $pagesize OFFSET $offset";
0
- $countquery = "SELECT COUNT(*) FROM $tables $where ORDER By name";
0
- $result = mysql_query($countquery);
0
- $row = mysql_fetch_array($result); # only 1 row
0
- $totalcount = $row[0];
0
- $pagecount = ceil($totalcount / $pagesize);
0
- # generate a paging control and cache it so we can show it twice
0
- $pagecontrol = "<p>Page ";
0
- for ($i = 1; $i <= $pagecount; $i++) {
0
- $pagecontrol .= " | ";
0
- $pagecontrol .= "<b>$i</b>";
0
- $pagecontrol .= "<a href=\"$_SERVER[PHP_SELF]?by=$by&substr=$substr&page=$i&pagesize=$pagesize\">$i</a>";
0
- $pagecontrol .= "</p>";
0
$result = mysql_query($query);
0
/* Main query sent to the DB */
0
+ $numrows = mysql_num_rows($result);
0
+ if ($numrows > $pagesize) {
0
+ $pagecount = ceil($numrows / $pagesize);
0
+ $page = min($page, $pagecount);
0
+ $offset = $pagesize * ($page-1);
0
+ $curpagesize = min($pagesize, $numrows - $offset);
0
+ # generate a paging control and cache it so we can show it twice
0
+ $pagecontrol = "<p>Page ";
0
+ for ($i = 1; $i <= $pagecount; $i++) {
0
+ $pagecontrol .= " | ";
0
+ $pagecontrol .= "<b>$i</b>";
0
+ $pagecontrol .= "<a href=\"$_SERVER[PHP_SELF]?by=$by&substr=$substr&page=$i&pagesize=$pagesize\">$i</a>";
0
+ $pagecontrol .= "</p>";
0
+ # seek the data pointer
0
+ mysql_data_seek($result, $offset);
0
print '<h3>Query Results</h3>';
0
- $resultrows = mysql_num_rows($result);
0
- $numrow
s = ($offset+1) . "-" . ($offset + $resultrows) . " of $totalcount Portfile" . ($totalcount == 1 ? '' : 's');
0
+ $numrow
text = ($offset+1) . "-" . ($offset + $curpagesize) . " of $numrows Portfile" . ($curpagesize == 1 ? '' : 's');
0
- $numrow
s = "$resultrows Portfile" . ($resultrows == 1 ? '' : 's');
0
+ $numrow
text = "$numrows Portfile" . ($numrows == 1 ? '' : 's');
0
- print "<p><i>$numrow
s Selected</i></p>";
0
+ print "<p><i>$numrow
text Selected</i></p>";
0
/* Iterate over the entire set of returned ports */
0
- while ($row = mysql_fetch_assoc($result)) {
0
+ for ($row = mysql_fetch_assoc($result), $i = 0;
0
+ $row && (!$paging || $i < $curpagesize);
0
+ $row = mysql_fetch_assoc($result), $i++) {
0
/* Port name and Portfile URL */
0
print "<dt><b><a href=\"${trac_url}browser/trunk/dports/$row[path]/Portfile\">" . htmlspecialchars($row['name'])
Comments
No one has commented yet.