Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.07.2005, 22:30
Mikhael-SM вне форума Посмотреть профиль Отправить личное сообщение для Mikhael-SM Найти все сообщения от Mikhael-SM
  № 1  
Ответить с цитированием
Mikhael-SM

Регистрация: Jul 2005
Сообщений: 1
По умолчанию разбивка на страницы с сортировкой, помогите!

Люди, помогите разобраться:
Есть страница, из базы на нее воводится по N записей.
Я прикрутил к ней сортировку данных с помощью такой не хитрой функции:
Код:
Код:
function convertorderbyin($orderby) {
        if ($orderby == "cnameA")        $orderby = "cname ASC";
        if ($orderby == "cdescA")        $orderby = "cdescription ASC";
        if ($orderby == "cnameD")        $orderby = "cname DESC";
        if ($orderby == "cdescD")        $orderby = "cdescription DESC";
        if ($orderby == "snameA")        $orderby = "sname ASC";
        if ($orderby == "sdescA")        $orderby = "sdescription ASC";
        if ($orderby == "snameD")        $orderby = "sname DESC";
        if ($orderby == "sdescD")        $orderby = "sdescription DESC";
        if ($orderby == "slocA")         $orderby = "slocation ASC";
        if ($orderby == "slocD")         $orderby = "slocation DESC";
        return $orderby;
}

$orderby = convertorderbyin($orderby);
Но появилась проблема, что после перехода по ссылкам на следующую страницу (следующие N записей из базы) значение $orderby не сохраняется, сортировка съезжает!
Что делать, чтобы сортировалось раз и до конца????

запрос из базы такой:
Код:

$sql_pn = "SELECT * FROM ".$prefix."_csservers ORDER BY $orderby LIMIT $offset, $snum";


$offset и $snum собственно порция данных на страницу.

На страницы разбиваю с помощью Page Numbers (привожу код)

Код:
global $prefix, $db, $pagenum, $snum, $orderby, $orderin, $module_name;

$snum = 30;

Выборка $num записей из базы и их сортировка 
if ($pagenum == "") { $pagenum = 1 ; }
    $offset = ($pagenum-1) * $snum ;
    $sql_pn = "SELECT * FROM ".$prefix."_csservers ORDER BY $orderby LIMIT $offset, $snum";  
    $result_pn = $db->sql_query($sql_pn);

.....
Так формирую ссылки

"._SDESCRIPTION." (<a href=\"modules.php?name=$module_name&amp;go=slist&amp;orderby=sdescA\">A</a>\<a href=\"modules.php?name=$module_name&amp;go=slist&amp;orderby=sdescD\">D</a>)


.....


# Fetch ROW
while ($row = $db->sql_fetchrow($result_pn)) {
$sname = $row[sname];
$sdescription = $row[sdescription];
$slocation = $row[slocation];

  $order = 'orderby=';
  $order = $order . $orderby; 

#START Page Numbers
    $sql_pn = "SELECT sid FROM ".$prefix."_csservers";
    $result_pn = $db->sql_query($sql_pn);
    $numservers = $db->sql_numrows($result_pn);
    $numpages = ceil($numservers / $snum);

    if ($numpages > 1) {
   opentable();
   echo "<center>" ;
   if ($pagenum > 1) {
       $prevpage = $pagenum - 1 ;

         $leftarrow = "images/left.gif" ;
      
Ссылки на остальные страницы:

echo "<a href=\"modules.php?name=Games&amp;go=slist&amp;pagenum=$prevpage$order\">";
      echo "<img src=\"$leftarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";

   }
   for ($i=1; $i < $numpages+1; $i++) {
       if ($i == $pagenum) {
      echo "<b>$i</b>";
       }
       else {
       $pagelink = 10;
       if (($i > $pagenum) AND ($i < $pagenum+$pagelink) OR ($i < $pagenum) AND ($i > $pagenum-$pagelink)) {
       echo " <a href=\"modules.php?name=Games&amp;go=slist&amp;pagenum=$i$order\">$i</a> ";

       }
       if (($i == $numpages) AND ($pagenum < $numpages-$pagelink)){
       echo "... <a href=\"modules.php?name=Games&amp;go=slist&amp;pagenum=$i$order\">$i</a>";
       }
       if (($i == 1) AND ($pagenum > 1+$pagelink)){
       echo "<a href=\"modules.php?name=Games&amp;go=slist&amp;pagenum=$i$order\">$i</a> ...";
       }

       }
   }
   if ($pagenum < $numpages) {
       $nextpage = $pagenum + 1 ;
         $rightarrow = "images/right.gif" ;
      echo "<a href=\"modules.php?name=Games&amp;go=slist&amp;pagenum=$nextpage$order\">";
      echo "<img src=\"$rightarrow\" align=\"absmiddle\" border=\"0\" hspace=\"10\"></a>";
   }
...

#END Page Numbers

Старый 23.07.2005, 05:40
Nirva вне форума Посмотреть профиль Отправить личное сообщение для Nirva Посетить домашнюю страницу Nirva Найти все сообщения от Nirva
  № 2  
Ответить с цитированием
Nirva
"Вождь"
 
Аватар для Nirva

Регистрация: Jun 2002
Адрес: New Zealand
Сообщений: 4,600
Отправить сообщение для Nirva с помощью ICQ
что значит что делать? сохранять значение сортировк
а) передавая ее каждый раз в параметрах
б) сохраняя в сессии
в) .. и много других более изощренных вариантов.

p.s. switch
__________________
а мы летим орбитами путями не избитыми...

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.