Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 02-29-2004, 04:34 PM
Harlequin's Avatar
Harlequin Harlequin is offline
 
Join Date: Aug 2003
Posts: 78
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default query_first() returns desired result, while query returns nothing?

Maybe I'm looking at this incredibly wrong, but let me explain the situation:

There are two queries I'm using to conduct a search to find out whether or not you're a member of x number of communities and to display the queried information about those communities to you.

Each community has it's own auto-incrementing ID (called commcommunityidset
) and the rows of the communityusers table fill with both the userid of the user joined and the commcommunityidset itself.

In another table, the information about the community is stored (name, creator, etc. etc. etc.)

When I use the following query below as query .. it returns nothing. When I use the query below as query_first, it returns a desired value, although naturally it's only the first one.

PHP Code:
$commcheck $DB_site->query("SELECT commuseridset,
                    commcommunityidset
                        FROM communityusers
                            WHERE commuseridset = 
$bbuserinfo[userid]"); 
I've purposely thrown a wrench in the query after the one above (aka a one or a two) just to check whether or not it returns any results.

As I've stated, query_first does wonderful except it's only the first result.

Before the next query, I've a OR commid=$commcheck[commcommunityidset] and then call this in that query in the WHERE.. so it's supposed to loop through everything the user has or so I think anyway.

Am I totally helpless? I've been playing with this for a little while now and it's aggravating to have problems over something I'd thought was so simple.
Reply With Quote
  #2  
Old 02-29-2004, 04:43 PM
NTLDR's Avatar
NTLDR NTLDR is offline
Coder
 
Join Date: Apr 2002
Location: Bristol, UK
Posts: 3,644
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

query_first does the while $var = $DB_site->fetch_array($var2) part for you so it gives a result, while with just query it doesn't do that, for example the following both do the same, however it makes more sense in this example to use query_first as its less work:

PHP Code:
// query_first
$var $DB_site->query_first("SELECT username FROM user WHERE userid = 2");

// query
$getvar $DB_site->query("SELECT username FROM user WHERE userid = 2");

while(
$var $DB_site->fetch_array($getvar)) {
    
// do anything you want with the data

The end result for both is that $var['username'] will contain the username for userid 2.

Basicly if you want to get multiple rows use query, if you want only a single row use query_first.
Reply With Quote
  #3  
Old 04-06-2004, 05:54 PM
Kaelon's Avatar
Kaelon Kaelon is offline
 
Join Date: Jan 2002
Posts: 405
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by NTLDR
query_first does the while $var = $DB_site->fetch_array($var2) part for you so it gives a result, while with just query it doesn't do that, for example the following both do the same, however it makes more sense in this example to use query_first as its less work:

PHP Code:
// query_first
$var $DB_site->query_first("SELECT username FROM user WHERE userid = 2");

// query
$getvar $DB_site->query("SELECT username FROM user WHERE userid = 2");

while(
$var $DB_site->fetch_array($getvar)) {
    
// do anything you want with the data

The end result for both is that $var['username'] will contain the username for userid 2.

Basicly if you want to get multiple rows use query, if you want only a single row use query_first.
So, when updating a single user account, you'll want to use query_first ? For example:

PHP Code:
$DB_site->query("UPDATE user SET usergroupid=2, journal=0 WHERE userid=$userid"
... that's too much work, is what you're saying, and instead, I should be using...

PHP Code:
$DB_site->query_first("UPDATE user SET usergroupid=2, journal=0 WHERE userid=$userid"); 
?
Reply With Quote
  #4  
Old 04-06-2004, 06:01 PM
NTLDR's Avatar
NTLDR NTLDR is offline
Coder
 
Join Date: Apr 2002
Location: Bristol, UK
Posts: 3,644
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

UPDATE/INSERT queries allways use $DB_site->query, only select queries use $DB_sire->query_first
Reply With Quote
  #5  
Old 04-06-2004, 06:02 PM
Kaelon's Avatar
Kaelon Kaelon is offline
 
Join Date: Jan 2002
Posts: 405
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, NTLDR. I just wanted to make sure that my queries were making sense.
Reply With Quote
Reply

Thread Tools
Display Modes

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 04:30 PM.


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.04118 seconds
  • Memory Usage 2,206KB
  • Queries Executed 11 (?)
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_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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_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