Avatar billede dab93 Nybegynder
14. maj 2011 - 20:49 Der er 10 kommentarer og
1 løsning

Justering af pointsystem

Hej eksperter.
Jeg har lavet et pointsystem som er integreret som brugernes profiler, og det fungere også fint nok. Men nu er fejlen bare at man kan forære flere point til en anden bruger end man selv har af point.

F.eks. hvis brugerA har 40 point, og forære 50 point til brugerB, så har brugerA -10 point tilbage, og det er ikke meningen. Det skal være sådan at hvis brugerA prøver at give flere point til brugerB end brugerA har på "kontoen", så lader den være med at give de point.

Min kode:
if(isset($_POST['udfor']) && $_SESSION['point']<=$_POST['point']) {
$point = $_POST['point'];
$sql = "UPDATE users SET point = point - $point WHERE id='". mysql_real_escape_string($_SESSION['id']) ."' ";
mysql_query($sql);
$sql2 = "UPDATE users SET point = point + $point WHERE id='". mysql_real_escape_string($_GET['id']) ."' ";
mysql_query($sql2);
}
Avatar billede keysersoze Guru
14. maj 2011 - 21:18 #1
Lav en select på antal point på brugerA og i en if sammenlign den værdi med din point-variabel - er tallet fra din select større kan overførslen lade sig gøre, ellers ikke.
Avatar billede dab93 Nybegynder
14. maj 2011 - 21:24 #2
Jeg har lavet det i en form:
<input type="checkbox" name="point" value="10" /> 10 point<br />


Kan det ikke bruges? Og kan du ikke vise noget kode så jeg bedre forstår det? :)
Avatar billede keysersoze Guru
14. maj 2011 - 21:35 #3
jeg kan ikke PHP så det bliver pseudo-kode;

SELECT point FROM users WHERE id = $_SESSION['id']
if int(rs("point")) > int($_POST['point'])
  'gør som du gør nu
else
  'meld fejl
end if
Avatar billede repox Seniormester
14. maj 2011 - 21:56 #4
Oversat fra #3:

$sql = "SELECT point FROM users WHERE id='".mysql_real_escape_string($_SESSION["id"])."'";
$res = mysql_query($sql);
$point = mysql_result($res, 0, "point");
if($point > $_POST["point"])
{
  //gør som du gør nu
}
else
{
  //meld fejl
}
Avatar billede dab93 Nybegynder
14. maj 2011 - 21:57 #5
Jeg har selv fået det til at virke. Jeg skulle sådan set bare ændre denne kode
if(isset($_POST['udfor']) && $_SESSION['point']<=$_POST['point']) {


Til denne:
if(isset($_POST['udfor']) && $_SESSION['point'] > $_POST['point']) {
Avatar billede dab93 Nybegynder
14. maj 2011 - 22:01 #6
Ups, havde ikke set dit svar. Jeg afprøver det lige :)
Avatar billede dab93 Nybegynder
14. maj 2011 - 22:05 #7
#repox
Tak, mit eget virkede også, men dit ser mere sikkert ud. Jeg kan desværre ikke give dig point da jeg gav mig selv de point, gør det noget?
Avatar billede repox Seniormester
14. maj 2011 - 22:07 #8
Det er keysersoze du skal spørge om det - det er blot hans pseudokode jeg oversatte for at være ham behjælpelig.
Avatar billede dab93 Nybegynder
14. maj 2011 - 22:09 #9
#repox
Ja, men din oversættelse var til mere nytte for mig.

#keysersoze
Gør det noget at jeg ikke kan give dig de point grundet af at jeg var for hurtig?
Avatar billede keysersoze Guru
15. maj 2011 - 11:59 #10
Du kan til enhver en tid give point - når du har lukket et spm kræver det bare at du åbner et nyt med pointene i.

Men nej, jeg behøver ikke dine point.
Avatar billede dab93 Nybegynder
15. maj 2011 - 17:15 #11
#10
Okay, men tak for svaret :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester