View Single Post
  #4140  
Old 08-29-2005, 06:45 PM
jarozi jarozi is offline
 
Join Date: Jun 2005
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Maybe this bug has already been reported, but with 250+ pages to search through, I thought I would try this...

So the bug is this: When someone matches the high score for a game, the arcade homepage will sometimes show the wrong trophy holder. It appears the query to select the current champ is a bit flawed as it queries only for the highest score, and if it finds two or more, will sometimes select the wrong person (ie. The person who did not get the high score first.)

The bug appears to be in this code block in the arcade.php file:
PHP Code:
    // While loop, where part of an SQL query is constructed
    
while ($thesession $DB_site->fetch_array($result_topscores))
    {
        
$where[] = "(gamename='$thesession[gamename]' AND score='$thesession[score]')";
        
$playedcounter[$thesession[gamename]] = $thesession['played'];
    }
    
$DB_site->free_result($result_topscores);
    
// Query built
    
if(!empty($where)) {
        
$whereclause "WHERE ".implode(' OR '$where);
    }
    
    
// Query to get the other data for the high scores
    
$result_topscore2 $DB_site->query("
        SELECT gamesessions.*, user.username, user.userid, games.*, games.title AS title FROM " 
TABLE_PREFIX "gamesessions AS gamesessions
        LEFT JOIN " 
TABLE_PREFIX "user AS user ON user.userid = gamesessions.userid
        LEFT JOIN " 
TABLE_PREFIX "games AS games ON gamesessions.gamename = games.shortname
        
$whereclause AND $sessionclause ORDER BY gamesessions.gamename DESC
    "
); 
This query needs to be modified to search for the high score AND the lowest final session time (final). I lack the SQL skill to get this done, can anyone help out here?

Thank you!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01079 seconds
  • Memory Usage 1,780KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete