<?php
################################
# SQL FUNCTIONS
################################
function getCategoryPlayerLinks($playerId, $catId)
{
	return db_fetch_array(main_db_query("SELECT * FROM QCategoryPlayerLinks WHERE CategoryId = '".$catId."' AND PlayerId = '".$playerId."'"));
}

function insertCategoryPlayerLinks($playerId, $catId, $score)
{
	main_db_query("INSERT INTO QCategoryPlayerLinks (CategoryId, PlayerId, MeilleurScore) VALUES ('".$catId."','".$playerId."','".$score."')");
}

function updateCategoryPlayerLinksById($id, $score)
{
	main_db_query("UPDATE QCategoryPlayerLinks SET MeilleurScore = '".$score."', Passages = Passages + 1 WHERE Id='".$id."'");
}

################################
function setQuizPlayerScores($playerId, $catId, $score)
{
	# convertit le nombre de bonnes réponses en points
	$points = getQuizPoints($score);

	# on regarde s'il a déjà joué
	$once = getCategoryPlayerLinks($playerId, $catId);
	
	$pointWin = 0;
	if (!$once)
	{
		$pointWin = $points;
		insertCategoryPlayerLinks($playerId, $catId, $score);
		setPlayerScores($playerId, $pointWin);
	}
	# vérif condition d'attribution des points
	elseif ($score > $once['MeilleurScore'])
	{
		$pointWin = $points - getQuizPoints($once['MeilleurScore']);
		
		# met à jour le CategoryPlayerLinks
		updateCategoryPlayerLinksById($once['Id'], $score);
		
		# met à jour le score du joueur
		# on rajoute la différence de points gagnés
		setPlayerScores($playerId, $pointWin);
	}
	else
	{
		updateCategoryPlayerLinksById($once['Id'], $once['MeilleurScore']);
	}
	
	return array($pointWin, intval($once['MeilleurScore']));
}

?>