Dine if-sætninger er vent forkert.
goldpris skal være større-end $gold for at du får en fejl.
Jeg har ryddet lidt op i din kode og vendt det hele lidt på hovedet for at du får en mere korrekt PHP/HTML-kode.
- <?php
- /*
- * Man starter ALTID med session_start(). session er header baseret og skriver du til klienten før du sender en header (det svarer til at maven kommer før hovedet), så går det galt. Prøv selv at forestille dig hvordan det vil se ud.
- */
- session_start();
-
- // Altid simplificer de opgaver der ligger i en if-sætning
- if(!isset($_SESSION['myusername'], $_SESSION['mypassword'])) {
- header('location: login.php');
- }
-
- // ved ikke hvad dette er - men det giver ikke mening at bruge URLer i include.
- include $_SERVER['DOCUMENT_ROOT'].'/GAMEDYNAMITE/Train.php';
-
- // Da du vist ikke kender til objekt-orieteret programmering er dette okay, men man kan lægge DB-connection i en global include-fil.
- $host="localhost"; // Host name
- $username="jkay_dk"; // Mysql username
- $password="((((/"; // Mysql password
- $db_name="jkay_dk"; // Database name
- $tbl_name="users"; // Table name
-
- // Connect to server and select databse.
- mysql_connect($host, $username, $password)or die("cannot connect");
- mysql_select_db($db_name)or die("cannot select DB");
-
- $arbejder = $_POST['arbejder'];
-
- //pris for en arbejder er 300 food og 2000 gold
- $brugerr = $_SESSION['myusername'];
-
- // Man kan sagtens hente flere felter i samme query.
- $query = mysql_query("SELECT gold, food, wood FROM users WHERE username = '$brugerr'") or die(mysql_error());
- $result = mysql_fetch_assoc($query);
- $gold = $result['gold'];
- $food = $result['food'];
- $wood = $result['wood'];
-
- $guldpris = $arbejder*2000;
- $foodpris = $arbejder*300;
-
- if($food > $foodpris && $gold > $goldpris) {
- // man kan sagtens opdatere flere felter i en query.
- mysql_query("UPDATE users SET gold = gold-$guldpris, food = food-$foodpris, arbejder = arbejder+$arbejder WHERE username='$brugerr'");
- $msg = " du trænede " . $arbejder . "arbejdere";
- } else {
- if($food < $foodpris){
- $msg = " du har ikke nok Food til at træne " . $arbejder . "arbejdere";
- } else if($gold < $goldpris) {
- $msg = " du har ikke nok Gold til at træne " . $arbejder . "arbejdere";
- }else{
- $msg = " du kan ikke træne ". $arbejder . "arbejdere";
- }
- }
-
- ?>
- <!-- HTML SKAL ALTID VÆRE SIDST, DET ER OUTPUT TIL KLIENTEN OG ALLE ANDRE SERVER-BASERET HANDLINGER SKAL VÆRE UDFØRT FØRST. -->
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta http-equiv="REFRESH" content="5;url=/GAMEDYNAMITE/ARMY.php">
- <title>Untitled Document</title>
- </head>
- <body>
- <?php if($msg): ?>
- <div style="border: 1px solid #a00; background: #faa; color: #000; padding: 10px;"><?php echo $msg; ?></div>
- <?php endif; ?>
- </body>
- </html>