Foreach?

Tags:    php

<< < 12 > >>
Hej.

Jeg er i gang med at lave et forum m. points.
Men er stødt ind i et problem, dette er "accepter-et-svar-delen":
<?php
if (isset($_REQUEST["accept"])) {
$root = $_SERVER['DOCUMENT_ROOT'];

require("$root/top.php");

$points = $_POST["points"];

foreach ($_POST['point'] AS $key => $value) { //*

if ($tjek != $points) {
echo "<p>Det angivne antal points stemmer ikke overens med din point-fordeling.</p>";
} else {

//Her Opretter den forbindelse til mysql databasen.

mysql_query("update brugersystem set points=points+$value where brugernavn='$key'") or die(mysql_error());

echo "<p>$value points er overført til $key ´s konto.</p>";
}

}
require("$root/bund.php");
}
?>

* Her vil jeg gerne have at den skal "loope" så hvis jeg fx. har oprettet et spørgsmål med 300 points, så skal jeg ikke kunne give 300 points pr. person der har svaret.

//Mathias

P.S. Jeg håber at i forstår mit spørgsmål, ellers må i bare sige til!
:0)



12 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Et lille forslag der tjekker:
- Om det er den rigtige bruger der fordeler points
- Om Pointene er positive
- Om det samlede antal points er korrekt
- Om brugerne eksisterer
og til sidst giver og fratrækker points.

Koden er ikke testet og der mangler nogle variabler.($tjek, $BrugerDerErLoggedInd, $BrugerDerHarOprettetSpg)

Har du spørgsmål, svarer jeg nok ikke med det samme da jeg er på ferie de næste 4-5 uger.

Fold kodeboks ind/udKode 




Skal jeg afsætte flere points?

:0)
//Mathias



foreach looper lige så mange gange som der er værdier i arrayen der er angivet og hvor $key er navnet og $value er værdien. $_POST['point'] er en post variabel og kan derfor ikke være en array. Du kan altså ikka bruge foreach som du gør der.

$tjek er ikke defineret

Må man se den form der sendes fra?




www.cm.matisen.lir.dk/forum/se2.php?id=1

Men husk lige at oprette en bruger først :0) før du har adgang til filen.

//Mathias



Har rettet fejlen med $tjek, men det virker desværre stadig ikke :0(
//Mathias



www.cm.matisen.lir.dk/forum/se2.php?id=1

Men husk lige at oprette en bruger først :0) før du har adgang til filen.

//Mathias

"Cannot find server"



Så er min computer tændt igen :0)

//Mathias



Hvis men indtaster noget forkert i "opret bruger" kommer din form bare igen. Skriv hvad der er forkert. fx for kort/langt brugernavn/kodeord eller at en anden bruger allerede har navnet. Det forvirrede mig en del!



Du mangler noget til at sikre dig at det er den som har oprettet spørgsmålet, som er logget ind. Ellers kan folk jo stjæle fra hinanden :(

$_POST["points"]; er unødvendig. Du skal bare bruge $tjek

Du skal nok lave 2 foreach. en der lægger alle pointene sammen og tjekker om det er lig med $tjek og en der indsætter points hvis summen var lig med $tjek

Du skal også huske at trække $tjek fra den der har oprettet spørgsmålet.



Er stadig under opbyging :0)

Jeg prøver!
//Mathias



<< < 12 > >>
t