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

Reply
 
Thread Tools Display Modes
  #1  
Old 03-03-2016, 04:52 PM
kerrghann's Avatar
kerrghann kerrghann is offline
 
Join Date: Jul 2012
Location: Hawaii
Posts: 45
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Widget Issue (DB Query)

So I'm attempting to make a widget that greets my new members and encourages my veteran members to greet my new members. For some reason I get an error with my DB query, I'm sure it's a pretty simple fix and it's just error on my part but I can't seem to figure it out.

Here is my code:

PHP Code:
$postcnt vB::$vbulletin->userinfo['posts'];
$usrgrp vB::$vbulletin->userinfo['usergroupid'];
$name vB::$vbulletin->userinfo['username'];
$newmem $vbulletin->db->query_first("SELECT username FROM " TABLE_PREFIX "user WHERE userid = $members[maxid] AND usergroupid NOT IN (3,4,8,17)");  
$usid $vbulletin->db->query_first("SELECT userid FROM " TABLE_PREFIX "user WHERE userid = $members[maxid] AND usergroupid NOT IN (3,4,8,17)");  

if (
$postcnt && $usrgrp == 2) {
    
$output "<center>Welcome " $name ", you should introduce yourself -> <a href='http://rpgchat.com/forumdisplay.php/227-Welcome-Center'><font color='red'><u><b>Welcome Center</font></u></b></a></center>";    
} else {
        
$output =  "<center>Welcome Back " $name ", our newest member is " $newmem ", why not <a href='rpgchat.com/private.php?do=newpm&u='" $usid "'><u><b><font color='red'>Greet Them?</font></b></u></center></a>";


It pulls this lovely Error as well:

Code:
Fatal error: Call to a member function query_first() on a non-object in /*****/*****/public_html/packages/vbcms/widget/execphp.php(191) : eval()'d code on line 4

I've look around, in fact I used this page to assist me in doing the query.

Any help would be immensely appreciated.

Thank you.
Reply With Quote
  #2  
Old 03-03-2016, 04:57 PM
Dave Dave is offline
 
Join Date: May 2010
Posts: 2,583
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would escape the variables in the SQL query and use vB:: for the database calls as well. You can try the following:
PHP Code:
$postcnt vB::$vbulletin->userinfo['posts']; 
$usrgrp vB::$vbulletin->userinfo['usergroupid']; 
$name vB::$vbulletin->userinfo['username']; 
$newmem vB::$vbulletin->db->query_first("SELECT username FROM " TABLE_PREFIX "user WHERE userid = " $members['maxid'] . " AND usergroupid NOT IN (3,4,8,17)");  
$usid vB::$vbulletin->db->query_first("SELECT userid FROM " TABLE_PREFIX "user WHERE userid = " $members['maxid'] . " AND usergroupid NOT IN (3,4,8,17)");  

if (
$postcnt && $usrgrp == 2) { 
    
$output "<center>Welcome " $name ", you should introduce yourself -> <a href='http://rpgchat.com/forumdisplay.php/227-Welcome-Center'><font color='red'><u><b>Welcome Center</font></u></b></a></center>";     
} else { 
    
$output =  "<center>Welcome Back " $name ", our newest member is " $newmem ", why not <a href='rpgchat.com/private.php?do=newpm&u='" $usid "'><u><b><font color='red'>Greet Them?</font></b></u></center></a>"

Reply With Quote
  #3  
Old 03-03-2016, 05:34 PM
kerrghann's Avatar
kerrghann kerrghann is offline
 
Join Date: Jul 2012
Location: Hawaii
Posts: 45
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmm...got this odd error now.

Code:
PHP Warning: mysqli_query(): (42000/1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND usergroupid NOT IN (3,4,8,17)' at line 1 in ..../includes/class_core.php on line 1433

Fatal error: Class 'SQLiteDatabase' not found in /*****/*****/public_html/includes/class_core.php on line 1182
Reply With Quote
  #4  
Old 03-03-2016, 05:53 PM
Dave Dave is offline
 
Join Date: May 2010
Posts: 2,583
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

First error probably happens because $members['maxid'] is empty/doesn't contain anything in your code snippet.
Second error is rather weird, vBulletin doesn't make use of SQLite at all. What database type did you configure in your includes/config.php file?
Reply With Quote
  #5  
Old 03-04-2016, 03:16 AM
kerrghann's Avatar
kerrghann kerrghann is offline
 
Join Date: Jul 2012
Location: Hawaii
Posts: 45
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmm...seems like $members['maxid'] isn't a valid variable for some reason. Any ideas on how I would get the desired effect of getting the username and userid of the newest registered member?
Reply With Quote
  #6  
Old 03-04-2016, 03:27 AM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try running the following query:

PHP Code:
$newusers $vbulletin->db->query_read_slave("
    SELECT user.*
    FROM " 
TABLE_PREFIX "user AS user
    ORDER BY joindate DESC
    LIMIT 1
"
);

$newuser $db->fetch_array($newusers); 
And then you should have the newest user's username in "$newuser['username']" and their userid in "$newuser['userid']".
Reply With Quote
  #7  
Old 03-05-2016, 06:33 PM
kerrghann's Avatar
kerrghann kerrghann is offline
 
Join Date: Jul 2012
Location: Hawaii
Posts: 45
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Attempted it, got a new error:

Code:
Fatal error: Call to a member function query_read_slave() on a non-object in /*****/******/public_html/packages/vbcms/widget/execphp.php(191) : eval()'d code on line 4
Reply With Quote
  #8  
Old 03-05-2016, 07:09 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kerrghann View Post
Attempted it, got a new error:

Code:
Fatal error: Call to a member function query_read_slave() on a non-object in /*****/******/public_html/packages/vbcms/widget/execphp.php(191) : eval()'d code on line 4
At the top of your plugin, add the line:

PHP Code:
global $db$vbulletin
I assumed you already had something like that since you are running other queries.
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 11:10 PM.


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.04419 seconds
  • Memory Usage 2,258KB
  • 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
  • (4)bbcode_code
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)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