Avatar billede illmatic Nybegynder
18. maj 2003 - 04:00 Der er 6 kommentarer og
1 løsning

Hjælp med "elseif" - i guess

Hej allesammen

Jeg har et script hvor den kun skal vise en text når man har trykket på en knap... Sådan her:

echo "Du fik 10 point du har nu " . $total . " point";
} else {
echo "Du har allerde trykket 1 gang idag !";
}

sådan ser det ud, men lige så snart man kommer ind på siden så skriver den med det samme "Du har allerede trykket idag" og det skal først komme når man trykker.. skal jeg bruge elseif til det ?!
Avatar billede ztyxx Nybegynder
18. maj 2003 - 04:08 #1
det må vel være noget i stil med

echo "Du fik 10 point du har nu " . $total . " point";
        if(isset($_SESSION["brugernavn"]) && $_POST["send"]) {
            echo "Du har allerde trykket 1 gang idag !";
        }
Avatar billede roenving Novice
18. maj 2003 - 04:08 #2
Du skal sætte en if uden om dine statements, så den _enten_ skriver din form eller forsøger at opdatere:


<?
if (!$_POST['get_point']){ //eller sådan noget -- jeg er ikke helt med på PHP!
?>

<form method="post" action="get_point.php">
<input type="hidden" name="get_point" value="get_point2">
<input type="submit" name="send" value="Log ind">
</form>
<?
}else{

$foresp = mysql_query("SELECT * FROM tester WHERE brugernavn='$_SESSION[brugernavn]'");
while($data = mysql_fetch_array($foresp)){
if ($_POST['get_point'] == "get_point2") {
mysql_query("UPDATE tester SET point=point +10 WHERE brugernavn='$_SESSION[brugernavn]'");
echo "Du fik 10 point du har nu $data[point] point";
} else {
echo "Du har allerde trykket 1 gang idag !";

}
}
}
?>
Avatar billede illmatic Nybegynder
18. maj 2003 - 04:13 #3
hmm det bliver lidt svært for min kode ser således ud:

<?
$foresp = mysql_query("SELECT * FROM tester WHERE brugernavn='$_SESSION[brugernavn]'");
while($data = mysql_fetch_array($foresp)){
if ($data['point_idag'] == "0") {
echo "<form method=\"post\" action=\"get_point.php\">
<input type=\"hidden\" name=\"get_point\" value=\"get_point2\">
<input type=\"submit\" name=\"send\" value=\"Giv mig 10 point\">
</form>";
} else {
echo "";
}
}
?>
<?
$foresp = mysql_query("SELECT * FROM tester WHERE brugernavn='$_SESSION[brugernavn]'");
while($data = mysql_fetch_array($foresp)){
if ($_POST['get_point'] == "get_point2" && $data['point_idag'] == "0") {
mysql_query("UPDATE tester SET point=point +10 WHERE brugernavn='$_SESSION[brugernavn]'");
$total = $data[point]+10;
echo "Du fik 10 point du har nu " . $total . " point";
} else {
echo "";
}
}
?>

<?
if ($_POST['get_point'] == "get_point2") {
mysql_query("UPDATE tester SET point_idag=1 WHERE brugernavn='$_SESSION[brugernavn]'");
}
?>
Avatar billede roenving Novice
18. maj 2003 - 04:46 #4
Men det er da det, du vil opnå, ikke '-)

Når brugeren åbner den side, så er han kommet fra en anden side, for der findes en session, så

-- enten
1. point_idag=1
han har scoret point og skal bare have beskeden, at han har fået point idag ...

2. point_idag=0
han har ikke scoret point tidligere idag, men
  a. der er ikke submittet herfra, så han skal have chancen for at score points
  b. han har lige submittet og skal derfor have point
--

dvs.

hent $foresp

if $data['point_idag']=="1"
  besked om at han har scoret points idag

elseif $_POST["send"] //jo, den er god nok med elseif
  ("UPDATE tester SET point, point_idag Values('point+10','1') WHERE brugernavn='$_SESSION[brugernavn]'");
  besked om at han har scoret points og nu har

else
  formen

Hverken PHP eller SQL er mit område, så dem skal du selvfølgelig checke ...
Avatar billede illmatic Nybegynder
18. maj 2003 - 15:34 #5
roenving >

ok det virkede men du manglede en masse så her er den færdige kode:

<?
$foresp = mysql_query("SELECT * FROM tester WHERE brugernavn='$_SESSION[brugernavn]'");
while($data = mysql_fetch_array($foresp)){
if ($data['point_idag'] == "1"){
echo "Du har allerede trykket i dag";

} elseif($_POST["get_point"]){
  ("UPDATE tester SET point, point_idag Values('point+10','1') WHERE brugernavn='$_SESSION[brugernavn]'");
$total = $data[point]+10;
echo "Du fik 10 point du har nu " . $total . " point";

} else {
echo "<form method=\"post\" action=\"get_point.php\">
<input type=\"hidden\" name=\"get_point\" value=\"get_point2\">
<input type=\"submit\" name=\"send\" value=\"Giv mig 10 point\">
</form>";
}
}

?>

<?
if ($_POST['get_point'] == "get_point2") {
mysql_query("UPDATE tester SET point_idag=1 WHERE brugernavn='$_SESSION[brugernavn]'");
}
?>



LAV SVAR ;)
Avatar billede roenving Novice
18. maj 2003 - 15:40 #6
Som sagt er det hverken PHP eller SQL jeg _kan_ -- det er programmering og -slogik -- derfor de manglende ting ...

Forøvrigt ser det ud til at du to gange opdaterer point_idag -- måske er den sidste overflødig ...

-- men ellers velbekomme '-)
Avatar billede roenving Novice
18. maj 2003 - 16:47 #7
-- og tak for points ;~}
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