vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   $sortorder for multiple fields (https://vborg.vbsupport.ru/showthread.php?t=144145)

Sarcoth 04-06-2007 01:17 PM

$sortorder for multiple fields
 
Is there an easy way to set the $sortorder for multiple fields. Right now I have my $sortorder set to default on usergroup.title. The page comes up correctly with the titles put in the correct order, but then it puts the members in userid order. I'd like it to instead put them in username order (alphabetically). And, if I sort by another field, I always want the username order (alphabetically) to be my secondary order.

Here is what I have right now:
Code:

        $sorturl = 'shroster.php?' . $vbulletin->session->vars['sessionurl'];
        $sortfield = $_REQUEST['sort'];
        $sortorder = $_REQUEST['order'];
       
        if ($sortfield == '')
        {
                $sortfield = 'title';
        }
        if ($sortorder == '')
        {
                $sortorder = 'asc';
        }

Here is my query:
Code:

        $users = $db->query_read_slave("
                SELECT user.*, shroster_roster.*, usergroup.usergroupid, usergroup.title, user.options, usertextfield.*, userfield.*,
                IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid
                FROM " . TABLE_PREFIX . "usergroup AS usergroup
                LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.usergroupid = usergroup.usergroupid OR FIND_IN_SET(usergroup.usergroupid, user.membergroupids))
                LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid = user.userid)
                LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
                LEFT JOIN " . TABLE_PREFIX . "shroster_roster AS shroster_roster ON(shroster_roster.shCharID=userfield.field7)
                WHERE (usergroup.shrosterviewpermissions = 1)
                ORDER BY " .$sortfield. " " .$sortorder
        );

Any thoughts?

I appreciate any assistance.

Thank you!

Code:

        if ($sortfield == '')
        {
                $sortfield = 'title, shname';
        }
        if ($sortorder == '')
        {
                $sortorder = 'asc';
        }

Upon further testing, adding (, shname) to the above fixed the initial sorting to the way I wanted it.

I still have a problem when trying to sort different columns though.

Here's a bit from my template.

Code:

<a href="$sorturl&amp;order=asc&amp;sort=shname"><img class="inlineimg" src="$stylevar[imgdir_button]/sortasc.gif" border="0" /></a>&nbsp;
                    $vboptions[shCharName]&nbsp;
                    <a href="$sorturl&amp;order=desc&amp;sort=shname"><img class="inlineimg" src="$stylevar[imgdir_button]/sortdesc.gif" border="0" /></a></td></if>
            <if condition="$show['title']"><td class="thead" nowrap>$vboptions[shTitle]</td></if>
            <if condition="$show['rank']"><td class="thead" nowrap>
                    <a href="$sorturl&amp;order=asc&amp;sort=title"><img class="inlineimg" src="$stylevar[imgdir_button]/sortasc.gif" border="0" /></a>&nbsp;
                    $vboptions[shRank]&nbsp;
                    <a href="$sorturl&amp;order=desc&amp;sort=title"><img class="inlineimg" src="$stylevar[imgdir_button]/sortdesc.gif" border="0" /></a></td></if>

If someone clicks on the ASC or DESC sort for title, I want to make sure it sorts title first and then shname. I tried the following but that only made it it sort by shname and ignore the title.

Code:

            <if condition="$show['rank']"><td class="thead" nowrap>
                    <a href="$sorturl&amp;order=asc&amp;sort=title&amp;order=asc&amp;sort=shname"><img class="inlineimg" src="$stylevar[imgdir_button]/sortasc.gif" border="0" /></a>&nbsp;
                    $vboptions[shRank]&nbsp;
                    <a href="$sorturl&amp;order=desc&amp;sort=title&amp;order=asc&amp;sort=shname"><img class="inlineimg" src="$stylevar[imgdir_button]/sortdesc.gif" border="0" /></a></td></if>

Any idea's?

Sarcoth 04-07-2007 03:12 PM

<font color="Red">*****************************</font>
Update: I've tried everything I could come up with but still can't get this code to sort a secondary field the way I want it.

The title,shname works great for the default, but when trying to put that in place for desc, the title stays in ASC order and only the shname changes to desc. I've tried many other combinations, still no result. I also tried adding a secsort and secorder to the .php, but that didn't work either. I'm missing something.

I hope someone feels generous and can offer some help. I'd gladly return the favor if I can.


All times are GMT. The time now is 09:09 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01124 seconds
  • Memory Usage 1,731KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (5)bbcode_code_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (2)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete