Warning: Parameter 1 to Language::getMagic() expected to be a reference, value given in /home/vhosting/c/vhost0008804/domains/online-urbanus.be/htdocs/w3/includes/StubObject.php on line 58 Faster load - Game Section

Faster load

From Game Section

NOTE THAT THIS PAGE IS ABOUT GAME SECTION 1.1.x
NOTE THAT THIS IS'T NEEDED IN GAME SECTION 1.2.x

In some cases, when the Game Section becomes larger, the query which loads the games becomes slower. But that can be fixed!

Code

Open games.php and find:

		//Games
		$query = $db->query("SELECT DISTINCT g.gid, g.title, g.name, g.description, g.played, g.rating, g.dateline, c.username, c.score, r.uid, s.score AS pscore
		FROM ".TABLE_PREFIX."games g
		LEFT JOIN ".TABLE_PREFIX."games_champions c ON (g.gid=c.gid)
		LEFT JOIN ".TABLE_PREFIX."games_rating r ON (g.gid=r.gid AND r.uid='".$mybb->user['uid']."')
		LEFT JOIN ".TABLE_PREFIX."games_scores s ON (g.gid=s.gid AND s.uid='".$mybb->user['uid']."')
		WHERE g.active='yes'
		ORDER BY g.".$sortat." ".$sorting."
		LIMIT ".$start.",".$perpage);
		$games_test = $db->num_rows($query);

Replace with:

		//Games
		$query = $db->query("SELECT DISTINCT g.gid, g.title, g.name, g.description, g.played, g.rating, g.dateline, c.username, c.score, r.uid
		FROM ".TABLE_PREFIX."games g
		LEFT JOIN ".TABLE_PREFIX."games_champions c ON (g.gid=c.gid)
		LEFT JOIN ".TABLE_PREFIX."games_rating r ON (g.gid=r.gid AND r.uid='".$mybb->user['uid']."')
		WHERE g.active='yes'
		ORDER BY g.".$sortat." ".$sorting."
		LIMIT ".$start.",".$perpage);
		$games_test = $db->num_rows($query);
		
		//Scores
		$query2 = $db->query("SELECT * FROM ".TABLE_PREFIX."games_scores WHERE uid='".$mybb->user['uid']."'");
		while($scores = $db->fetch_array($query2))
		{
			$score[$scores['gid']] = $scores['score'];
		}

In the same file, find:

			//If you are a memeber, whats your best score
			if($mybb->user['uid'] != 0)
			{
				if(!isset($games['pscore']))
				{
					$perbest['score'] = $lang->na;
				}
				else
				{
					$perbest['score'] = my_number_format(floatval($games['pscore']), 0, $settings_games['decim'], $settings_games['thousands_sep']);
				}
			}
			else
			{
				$perbest['score'] = $lang->na;
			}

Replace with:

			//If you are a memeber, whats your best score
			if($mybb->user['uid'] != 0)
			{
				if(!isset($score[$games['gid']]))
				{
					$perbest['score'] = $lang->na;
				}
				else
				{
					$perbest['score'] = my_number_format(floatval($score[$games['gid']]), 0, $settings_games['decim'], $settings_games['thousands_sep']);
				}
			}
			else
			{
				$perbest['score'] = $lang->na;
			}

In the same file, find:

		//Games
		$query = $db->query("SELECT DISTINCT g.gid, g.title, g.name, g.description, g.played, g.rating, g.dateline, c.username, c.score, r.uid, s.score AS pscore
		FROM ".TABLE_PREFIX."games g
		LEFT JOIN ".TABLE_PREFIX."games_champions c ON (g.gid=c.gid)
		LEFT JOIN ".TABLE_PREFIX."games_rating r ON (g.gid=r.gid AND r.uid='".$mybb->user['uid']."')
		LEFT JOIN ".TABLE_PREFIX."games_scores s ON (g.gid=s.gid AND s.uid='".$mybb->user['uid']."')
		WHERE g.active='yes' AND g.cid='".$cid."'
		ORDER BY g.".$sortat." ".$sorting."
		LIMIT ".$start.",".$perpage);
		$games_test = $db->num_rows($query);

Replace with:

		//Games
		$query = $db->query("SELECT DISTINCT g.gid, g.title, g.name, g.description, g.played, g.rating, g.dateline, c.username, c.score, r.uid
		FROM ".TABLE_PREFIX."games g
		LEFT JOIN ".TABLE_PREFIX."games_champions c ON (g.gid=c.gid)
		LEFT JOIN ".TABLE_PREFIX."games_rating r ON (g.gid=r.gid AND r.uid='".$mybb->user['uid']."')
		WHERE g.active='yes' AND g.cid='".$cid."'
		ORDER BY g.".$sortat." ".$sorting."
		LIMIT ".$start.",".$perpage);
		$games_test = $db->num_rows($query);
		
		//Scores
		$query2 = $db->query("SELECT * FROM ".TABLE_PREFIX."games_scores WHERE uid='".$mybb->user['uid']."'");
		while($scores = $db->fetch_array($query2))
		{
			$score[$scores['gid']] = $scores['score'];
		}

In the same file find:

			//If you are a memeber, whats your best score
			if($mybb->user['uid'] != 0)
			{
				if(!isset($games['score']))
				{
					$perbest['score'] = $lang->na;
				}
				else
				{
					$perbest['score'] = my_number_format(floatval($games['pscore']), 0, $settings_games['decim'], $settings_games['thousands_sep']);
				}
			}
			else
			{
				$perbest['score'] = $lang->na;
			}

Replace with:

			//If you are a memeber, whats your best score
			if($mybb->user['uid'] != 0)
			{
				if(!isset($score[$games['gid']]))
				{
					$perbest['score'] = $lang->na;
				}
				else
				{
					$perbest['score'] = my_number_format(floatval($score[$games['gid']]), 0, $settings_games['decim'], $settings_games['thousands_sep']);
				}
			}
			else
			{
				$perbest['score'] = $lang->na;
			}

Changed File

When you don't want to change your file manually, download this file.