webForumDet fria alternativet

Ge poäng för match

PHP

8 svar · 499 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Jag håller på med en grej där man får poäng för varje match man gissar rätt på. Först lägger man in sitt resultat, sedan spelas matcher och efter det får man poäng. Men jag vet inte hur man ska ge poängen bara. Sidan administreras från en speciell sida där man också lägger in matcherna och deras resultat. Man kan ju sitta och ge varje medlem poäng manuellt för varje match de prickar rätt. Men det blir ju lite enformigt i längden. Det skulle ju vara smidigast att ha ett script som automatiskt delar ut poäng när matchens deadline går ut. Men hur ska jag gå till väga? Några förslag?

Medlem sedan sep. 2001287 inlägg
#2

På rak arm så borde det bli lättast att spara all matchinformation i en databas med datum, varge gång nån tittar på sidan så kollar den om någon match är klar och om den har fått poäng, har den inte det så ger den poäng om användaren gissade rätt. När den har kollat allt så visar den resultatet eller vad det nu var den skulle visa.

Medlem sedan jan. 20011 140 inlägg
#3

Här är min kod och jag blir galen på att det inte funkar:

<?php
require '../inc/db.php';

$get = mysql_query("SELECT * FROM Tips WHERE Tips_GameID = $Games_ID");
while ($userRow = mysql_fetch_array($get)) 
{
	$Tips_Result1 = $userRow['Tips_Result1'];
	$Tips_Result2 = $userRow['Tips_Result2'];

	$The_UserScore = "$Tips_Result1-$Tips_Result2";
	$The_Score = "$Games_Score1-$Games_Score2";
	
	extract($userRow);
	if ($The_UserScore = $The_Score)
	{
		if (($The_UserScore = "2-0") || ($The_UserScore = "0-2"))
		{
			$get = mysql_query("INSERT INTO Users SET Users_Points + 2 WHERE Users_UserName = $Tips_UserName");
		}
		if (($The_UserScore = "2-1") || ($The_UserScore = "1-2"))
		{
			$get = mysql_query("INSERT INTO Users SET Users_Points + 1 WHERE Users_UserName = $Tips_UserName");
		}
	}
	else
	{
		echo "&nbsp;";
	}
}

// Close database connection
mysql_close();
?>

Och här är felmeddelandet:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\apache\htdocs\myfolder\admin\games_report3.php on line 5
Medlem sedan apr. 2001762 inlägg
#4

Det är ju mysql frågan du får fel på. Säker på att det är versaler där du har satt versaler? .. typ Tips_GameID etc.

Medlem sedan jan. 20011 140 inlägg
#5

Ja allt heter typ Games_Score1 och Games_ID etc. Inte games_id eller games_score1.

Medlem sedan aug. 20002 975 inlägg
#6

Lite felsökning. Byt ut:

$get = mysql_query("SELECT * FROM Tips WHERE Tips_GameID = $Games_ID");

mot

$sql = "SELECT * FROM Tips WHERE Tips_GameID = $Games_ID";
echo $sql."<br>";
$get = mysql_query($sql) or die(mysql_error());

Dels skriver du ut frågan för att se om variabeln kommer in rätt, dels låter vi mysql rapportera vad felet kan finnas.

Medlem sedan jan. 20011 140 inlägg
#7

SELECT * FROM Tips WHERE Tips_GameID = 1

Skriver den ut

Medlem sedan jan. 20011 140 inlägg
#8

Det är nog fel på den här koden tror jag:

	extract($userRow);
	if ($The_UserScore == $The_Score)
	{
		if (($The_UserScore = "2-0") || ($The_UserScore = "0-2"))
		{
			$get = mysql_query("INSERT INTO Users SET Users_Points + 2 WHERE Users_UserName = $Tips_UserName");
		}
		if (($The_UserScore = "2-1") || ($The_UserScore = "1-2"))
		{
			$get = mysql_query("INSERT INTO Users SET Users_Points + 1 WHERE Users_UserName = $Tips_UserName");
		}
	}
	else
	{
		echo "No one has tipped this game OR tipped the right result.";
	}
Medlem sedan aug. 20002 975 inlägg
#9

Strängar i mysql måste omges av citationstecken, och jag antar att fältet Users_UserName är av strängformat. Testa då att skriva så här:

$get = mysql_query("INSERT INTO Users SET Users_Points + 2 WHERE Users_UserName ='$Tips_UserName'");
256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)