Det var godt nok lidt rodet det kode..
Men mit gæt ville være at den ikke kan finde noget "metal" fra din forspørgsel, og at din "mcal" altid vil være mindst 75 da du siger (0+1)*75 (Hvis den ikke kan finde noget ud fra din forspørgsel).
Så din ifsætning er egentlig:
if(0 >= 75) {
// Kør din SQL
} else {
// Du har ikke råstoffer nok
}
Jeg prøvede lige at rette din kode til med din SQL forespørgsel, for den måde du har lavet det på med en while og så 2 tuborg-paranteser, er lidt forkert.
Prøv at se hvordan jeg har gjort her, og se om det ikke hjælper dig lidt.. Hvis du får samme problem, så tjek din mysql forspørgsel, hvor du henter tingene fra. Evt. udskriv den (jeg har udkommenteret din forespørgsel i en echo), så kan du se om dine værdier er rigtige i dine variabler.
<?php
$host="localhost";
$user="root";
$pass="";
$db_name="db";
$tbl_name="medlemmer";
$cookie=$_COOKIE['user'];
$con = mysql_connect($host, $user, $pass) or die("Cannot Connect");
mysql_select_db($db_name, $con) or die("Cannot select DB");
$result = mysql_query("SELECT * FROM " . $tbl_name . " WHERE bruger='" . $cookie . "'") or die ("Error: " . mysql_error());
// echo "SELECT * FROM " . $tbl_name . " WHERE bruger='" . $cookie . "'";
if(mysql_num_rows($result) > 0)
{
$row = mysql_fetch_array($result);
$metal=$row['metal'];
$mlvl=$row['mlvl'];
$mcal=($mlvl+1)*75;
$kcal=($mlvl+1)*50;
$krystal=$row['krystal'];
if ($metal >= $mcal)
{
mysql_query("UPDATE $tbl_name SET mlvl=mlvl+1 WHERE bruger='$cookie'");
mysql_query("UPDATE $tbl_name SET metal=(metal-$mcal) WHERE bruger='$cookie'");
mysql_query("UPDATE $tbl_name SET krystal=(krystal-$kcal) WHERE bruger='$cookie'");
header("Location:bygning.php");
}
else
{
echo "Du har ikke nok råstoffer.";
echo "<br /><a href='bygning.php'>Tilbage</a>";
}
} else {
echo "Kunne ikke finde brugeren!";
}
mysql_close($con);
?>
Indlæg senest redigeret d. 01.02.2009 14:16 af Bruger #4265