Использовал для постраничного вывода функцию с этого форума У она меня выгдядит следующим образом:
| Код | // функция разбивки сраниц
function pages_list($query, $page = 0, $sortcolumn = "", $sort = "DESC", $ignoreparameters = "", $resultsperpage = 20, $scriptname = "") {
global $start, $HTTP_GLOBAL_VARS; $tpages = ''; $vars = ''; if (!$scriptname || ($scriptname == "")) $scriptname = $HTTP_GLOBAL_VARS['PHP_SELF']; if (!$ignoreparameters || ($ignoreparameters == "")) $ignoreparameters = array("page", "sortcolumn", "sort"); if (!$sortcolumn || ($sortcolumn == "")) $sorting = ""; else $sorting = " ORDER BY ".$sortcolumn." ".$sort." "; $records = $n = mysql_num_rows(mysql_query($query)); foreach ($_REQUEST as $name => $value) if (!in_array($name,$ignoreparameters)) $vars .= $name."=".$value; $totalpages = 0; while ($n > 0) { $totalpages++; $n -= $resultsperpage; } $n = $records; $cp = 0; while ($n > 0) { if (($cp >= $page-10) && ($cp <= $page+10)) { if ($cp == $page) $tpages .= "[<b>".($cp+1)."</b>]"; else $tpages .= "<a href=\"http://www.pctower.net/index.php".$scriptname."?".$vars."&page=".$cp."\">".($cp+1)."</a>\n"; $tpages .= " "; } $cp++; $n -= $resultsperpage; } $query .= $sorting." LIMIT ".($page*$resultsperpage).",".$resultsperpage; $pages = "Страницы: \n"; $pages .= $tpages; $results['pages'] = $pages; $results['query'] = $query; $results['vars'] = $vars; return $results; }
// выводим результаты
if (!$page) $page = 0; if (!$sortcolumn || ($sortcolumn == "")) $sortcolumn = "article_date"; if (!$sort || ($sort == "")) $sort = "DESC"; $query = "SELECT * FROM articles WHERE section_id='$section' "; $results = pages_list($query, $page, $sortcolumn, $sort, array("page", "sortcolumn", "sort", "PHPSESSID"), 10, "");
$result = mysql_query($results['query']); while ($row = mysql_fetch_array($result)) {
echo $row['article_title']; echo $row['article_author']; echo $row['article_date']; }
// выводим навигацию
echo $results['pages'];
|
Все хорошо работает, но вот одна проблема: есть простенькая форма, из которой передаются значения в переменную сортировки $sort:
<form method="POST" action=""> сортировать по <select name="sort"> <option value="DESC" selected>убыванию</option> <option value="ASC">возврастанию</option> </select> </form>
форма работает, сортировка происходит, но если страница разбита на несколько, то при переходе на следующую страницу эти данные теряются и сортировка опять происходит по умолчанию. Как сделать чтобы сортировка сохранялась в рамках одного документа разбитого на страницы?
Спасибо. |