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-18-2017, 12:39 PM
Thr33's Avatar
Thr33 Thr33 is offline
 
Join Date: Sep 2008
Location: Manchester, UK
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default $var = $var unexpected result

I run a vBulletin plugin that has always worked fine until recently i upgraded Apache and PHP from 5.4 to 5.5 and suddonly a calculation isnt working the way it should do:

PHP Code:
$RUser $row2['reputation'];
$RUserMinus $RUser-1
Instead of $RuserMinus being the result of $Ruser -1 it's replacing the value with -1 so $RUserMinus = "-1" instead of the result.

FULL SCRIPT

PHP Code:
$query2 $db->query_read("SELECT reputation FROM user WHERE userid =" $vbulletin->userinfo['userid']) or die(mysql_error()); 

while(
$row2 mysql_fetch_array$query2 )) { 
$RUser $row2['reputation']; 

$RUserMinus $RUser-1

$vbulletin->db->query_write("UPDATE user SET reputation=".$RUserMinus." WHERE userid=".$vbulletin->userinfo['userid']) or die (mysql_error()); 

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

Try
PHP Code:
$RUserMinus = ($RUser 1); 
Reply With Quote
  #3  
Old 03-18-2017, 01:37 PM
Thr33's Avatar
Thr33 Thr33 is offline
 
Join Date: Sep 2008
Location: Manchester, UK
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Same result, changes the value to -1

Quote:
Originally Posted by Dave View Post
Try
PHP Code:
$RUserMinus = ($RUser 1); 
Reply With Quote
  #4  
Old 03-18-2017, 02:25 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try putting the statement:

PHP Code:
$RUserMinus $RUser-1
within the while loop.
Reply With Quote
  #5  
Old 03-18-2017, 02:37 PM
Thr33's Avatar
Thr33 Thr33 is offline
 
Join Date: Sep 2008
Location: Manchester, UK
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Database Error
]]> Database error in vBulletin 4.2.3
Invalid SQL: UPDATE user SET reputation= WHERE userid=2;
MySQL Error : 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 'WHERE userid=2' at line 1
Error Number : 1064
Request Date : Saturday, March 18th 2017 @ 03:37:01 PM
Error Date : Saturday, March 18th 2017 @ 03:37:01 PM
Script : http://literecords.com/sandbox/post_thanks.php
Referrer : http://literecords.com/sandbox/showt...php?2-rep-test
Classname : vB_Database_MySQLi
MySQL Version : 5.5.54-cll
]]>
Reply With Quote
  #6  
Old 03-18-2017, 02:46 PM
MarkFL's Avatar
MarkFL MarkFL is offline
 
Join Date: Feb 2014
Location: St. Augustine, FL
Posts: 3,853
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Rather than use a db query to get the browsing user's reputation, I would simply use:

PHP Code:
$vbulletin->userinfo['reputation'
Thus, your code becomes:

PHP Code:
$RUserMinus $vbulletin->userinfo['reputation'] - 1

$vbulletin->db->query_write("UPDATE user SET reputation=" $RUserMinus " WHERE userid=".$vbulletin->userinfo['userid']) or die (mysql_error()); 
Reply With Quote
  #7  
Old 03-18-2017, 02:51 PM
Thr33's Avatar
Thr33 Thr33 is offline
 
Join Date: Sep 2008
Location: Manchester, UK
Posts: 114
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Im not sure if that work as i use 2 queries in the full plugin script is:

PHP Code:
if ($vbulletin->userinfo['userid'] !== $threadinfo['postuserid'])   
{   

$query $db->query_read("SELECT reputation FROM user WHERE userid =" $threadinfo['postuserid']) or die(mysql_error()); 

while(
$row mysql_fetch_array$query )) {    
$OPRep $row['reputation'];   
$OPRepPlus $OPRep+1;  } 

$vbulletin->db->query_write("UPDATE user SET reputation=".$OPRepPlus." WHERE userid=".$threadinfo['postuserid']) or die (mysql_error()); 

$query2 $db->query_read("SELECT reputation FROM user WHERE userid =" $vbulletin->userinfo['userid']) or die(mysql_error());   

while(
$row2 mysql_fetch_array$query2 )) {     
$RUser $row2['reputation'];   
$RUserMinus $RUser-1;  } 

$vbulletin->db->query_write("UPDATE user SET reputation=".$RUserMinus." WHERE userid=".$vbulletin->userinfo['userid']) or die (mysql_error());   
 
}   
else   
{    

--------------- Added [DATE]1489852566[/DATE] at [TIME]1489852566[/TIME] ---------------

AHHHH it f*cking works!! You absolute legend! Do you make music? I'll give you a privileged account haha!

--------------- Added [DATE]1489852778[/DATE] at [TIME]1489852778[/TIME] ---------------

When i did it for the -1 part it worked great but when i adapted to the +1 part it give me the same database error as earlier ^^

PHP Code:
if ($vbulletin->userinfo['userid'] !== $threadinfo['postuserid'])    
{    
$OPRepPlus $vbulletin->userinfo['reputation'] + 1;  

$vbulletin->db->query_write("UPDATE user SET reputation=".$OPRepPlus." WHERE userid=".$threadinfo['postuserid']) or die (mysql_error()); 
   
$RUserMinus $vbulletin->userinfo['reputation'] - 1;  

$vbulletin->db->query_write("UPDATE user SET reputation=".$RUserMinus." WHERE userid=".$vbulletin->userinfo['userid']) or die (mysql_error());    

else    
{     

--------------- Added [DATE]1489853144[/DATE] at [TIME]1489853144[/TIME] ---------------

PHP Code:
$vbulletin->userinfo['reputation'
I think i see the problem. This line grabs the replying member's reputation. I need to find the thread starter's reputation.

--------------- Added [DATE]1489853318[/DATE] at [TIME]1489853318[/TIME] ---------------

It's deducting -1 from thread starter's reputation instead of +1
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 09:18 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.16227 seconds
  • Memory Usage 2,255KB
  • 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
  • (10)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (7)post_thanks_box
  • (7)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (7)post_thanks_postbit_info
  • (7)postbit
  • (7)postbit_onlinestatus
  • (7)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