Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-06-2007, 01:17 PM
Sarcoth Sarcoth is offline
 
Join Date: Mar 2006
Location: Huntsville
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default $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?
Reply With Quote
  #2  
Old 04-07-2007, 03:12 PM
Sarcoth Sarcoth is offline
 
Join Date: Mar 2006
Location: Huntsville
Posts: 521
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:44 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03440 seconds
  • Memory Usage 2,178KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (5)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete