Benjamin5
Mitglied
Finde Fehler in meiner Programmierung nicht!
Ich baue derzeit an einem Browsergame und bin dort jetzt mit dem Bauscript fertig. Allerdings weist es einen Fehler auf den ich bis jetzt noch nicht finden konnte.
Ich kann etwas zum Bauen in Auftrag geben, aber wenn es fertig gebaut ist, dann wird das nicht in die Datenbank übernommen. Stattdessen Aktualisiert er immer wieder die seite die für das Bauen zuständig ist neu.
Findet vielleicht einer von euch den Fehler?
Hier die PHP Codes
Baumenü:
functions/bauen.php:
js/baucountdown.php
Über eure Hilfe wäre ich sehr Dankbar.
Ich baue derzeit an einem Browsergame und bin dort jetzt mit dem Bauscript fertig. Allerdings weist es einen Fehler auf den ich bis jetzt noch nicht finden konnte.
Ich kann etwas zum Bauen in Auftrag geben, aber wenn es fertig gebaut ist, dann wird das nicht in die Datenbank übernommen. Stattdessen Aktualisiert er immer wieder die seite die für das Bauen zuständig ist neu.
Findet vielleicht einer von euch den Fehler?
Hier die PHP Codes
Baumenü:
PHP:
<?php
// Bauen //
include ("../config.php");
include ("functions/bauen.php");
include ("../checkuser.php");
$id = $_SESSION["user_id"];
$build = $_GET['build'];
bauen($build, $id);
$sql = "SELECT `bau_ende`, `bau` FROM `aktionen` WHERE `UserId` = '".$userinfo[UserID]."'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$bau_ende = $fetch['bau_ende'];
$bau = $fetch['bau'];
}
if (isset($bau_ende) && $bau_ende != 0 && time() >= $bau_ende)
{
bauenfertig($bau, $id);
}
?><style type="text/css">
<!--
body,td,th {
color: #FF0000;
}
body {
background-color: #000000;
}
-->
</style>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="8" height="8" background="img/middle/rahmenobenlinks.png"></td>
<td height="8" background="img/middle/rahmenoben.png"></td>
<td width="8" height="8" background="img/middle/rahmenobenrechts.png"></td>
</tr>
<tr>
<td height="25" width="8" background="img/middle/rahmenlinks.png"></td>
<td align="center" background="img/middle/main.png">
<table width="100%" border="0">
<tr>
<td colspan="3">
<?php
$sql = "SELECT `bau`, `bau_ende` FROM `aktionen` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$bau = $fetch['bau'];
$bau_ende = $fetch['bau_ende'];
}
If(empty($bau)){}
else{
?>
<tr bgcolor="#666666">
<td align="center">Bauauftrag</td>
<td align="center">Dauer</td>
<td align="center">Fertigstellung</td>
</tr>
<tr bgcolor="#999999">
<td align="center"><?=$bau?></td>
<td align="center"><?php include 'js/baucountdown.php';?></td>
<td align="center"><?php echo date("H:i:s", $bau_ende);?></td>
</tr>
<tr>
<td colspan="3"><br></td>
</tr>
<?php
}
?>
<?php
$sql = "SELECT `bauzentrum` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$bauzentrumstufe = $fetch['bauzentrum'] + 1;
}
$sql = "SELECT `geld`, `sekunden` FROM `gebäudekosten` WHERE `name` = 'Bauzentrum' AND `stufe`= '$bauzentrumstufe'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$bauzentrum_geld = $fetch['geld'];
$bauzentrum_sekunden = $fetch['sekunden'];
}
?>
<tr bgcolor="#999999">
<td>
<img src="#">
</td>
<td>
Bauzentrum (Stufe <?=$bauzentrumstufe?>)<br>
Hauptrohstofflieferanten für den Bau tragender Strukturen von Bauwerken und Schiffen.<br>
Benötigt: Geld: <?=$bauzentrum_geld?><br>
Produktionsdauer: <?php echo date("i:s", $bauzentrum_sekunden);?>
</td>
<td>
<?php
If(empty($bau)){echo '<a href="bauen.php?&build=Bauzentrum">Bauen</a>';}
else {echo 'Es wird gebaut';}
?>
</td>
</tr>
<tr>
<td colspan="3"><br></td>
</tr>
<?php
$sql = "SELECT `kaserne` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$kaserneanzahl = $fetch['kaserne'];
}
$sql = "SELECT `geld`, `sekunden` FROM `gebäudekosten` WHERE `name` = 'Kaserne'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$kaserne_geld = $fetch['geld'];
$kaserne_sekunden = $fetch['sekunden'];
}
?>
<tr bgcolor="#999999">
<td>
<img src="#">
</td>
<td>
Kaserne (Anz. <?=$kaserneanzahl?>)<br>
Hauptrohstofflieferanten für den Bau tragender Strukturen von Bauwerken und Schiffen.<br>
Benötigt: Geld: <?=$kaserne_geld?><br>
Produktionsdauer: <?php echo date("i:s", $kaserne_sekunden);?>
</td>
<td>
<?php
If(empty($bau)){echo '<form action="bauen.php" method="get"><input type="hidden" name="build" value="Kaserne"><input type="text" name="anz" size="1" maxlength="3"><input type="submit" value="Bauen"></form>';}
else {echo 'Es wird gebaut';}
?>
</td>
</tr>
<tr>
<td colspan="3"></td>
</tr>
</table>
</td>
<td height="25" width="8" background="img/middle/rahmenrechts.png"></td>
</tr>
<tr>
<td width="8" height="8" background="img/middle/rahmenuntenlinks.png"></td>
<td height="8" background="img/middle/rahmenunten.png"></td>
<td width="8" height="8" background="img/middle/rahmenuntenrechts.png"></td>
</tr>
</table>
functions/bauen.php:
PHP:
<?php
include ("../config.php");
include ("../checkuser.php");
function bauenfertig($bau, $id)
{
switch ($bau) {
//////////////////////////////////////////////////////////// Bauzentrum ////////////////////////////////////////////////////////////
case Bauzentrum:
$sql = "SELECT `bauzentrum` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
//Varablen//
$stufe = $fetch['bauzentrum'];
$updatestufe = $stufe + 1;
$sql = "SELECT `points` FROM `gebäudekosten` WHERE `name` = 'Bauzentrum' AND `stufe`= '$stufe'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$punkte = $fetch['points'];
}
$update = mysql_query("UPDATE `gebäude` SET `bauzentrum` = '$updatestufe' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `aktionen` SET `bau` = '0', `bau_ende` = '0' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `data` SET `points` = `points` + '$punkte' WHERE `UserId` = '$id'");
}
break 1;
//////////////////////////////////////////////////////////// Bauzentrum ////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////// Kaserne ////////////////////////////////////////////////////////////
case Kaserne:
$sql = "SELECT `kaserne` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
//Varablen//
$stufe = $fetch['kaserne'];
}
$sql = "SELECT `anzahl` FROM `aktionen` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$updatestufe = $fetch['anzahl'] + $stufe;
}
$sql = "SELECT `points` FROM `gebäudekosten` WHERE `name` = 'Kaserne' AND `stufe`= '$stufe'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$punkte = $fetch['points'];
}
$update = mysql_query("UPDATE `gebäude` SET `kaserne` = '$updatestufe' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `aktionen` SET `bau` = '0', `bau_ende` = '0', `anzahl` = '' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `data` SET `points` = `points` + '$punkte' WHERE `UserId` = '$id'");
break 1;
//////////////////////////////////////////////////////////// Kaserne ////////////////////////////////////////////////////////////
}
}
function bauen($build, $id)
{
switch ($build) {
//////////////////////////////////////////////////////////// Bauzentrum ////////////////////////////////////////////////////////////
case Bauzentrum:
////////// mysql gebäude //////////
$sql = "SELECT `bauzentrum` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$bauzentrumstufe = $fetch['bauzentrum'] + 1;
}
////////// mysql ressourcen //////////
$sql = "SELECT `geld` FROM `ressourcen` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$geldhaben = $fetch['geld'];
}
////////// mysql gebäudekosten //////////
$sql = "SELECT `name`, `geld`, `stufe`, `sekunden`, `maximal` FROM `gebäudekosten` WHERE `name` = '$build' AND `stufe`= '$bauzentrumstufe'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$sekunden = $fetch['sekunden'];
$geld_kosten = $fetch['geld'];
$maximal = $fetch['maximal'];
}
////////// variablen //////////
$endzeit = time() + $sekunden;
$geld_endwert = $geldhaben - $geld_kosten;
////////// if //////////
if ($bauzentrumstufe < $maximal AND $geldhaben >= $geld_kosten){
$update = mysql_query("UPDATE `aktionen` SET `bau_ende` = '$endzeit', `bau` = '$build' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `ressourcen` SET `geld` = '$geld_endwert' WHERE `UserId` = '$id'");
header("Location: bauen.php?action=1");}
////////// else //////////
if ($bauzentrumstufe >= $maximal){header("Location: bauen.php?action=2");}
if ($geldhaben < $geld_kosten){header("Location: bauen.php?action=3");}
break 1;
//////////////////////////////////////////////////////////// Bauzentrum ////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////// Kaserne ////////////////////////////////////////////////////////////
case Kaserne:
////////// mysql gebäude //////////
$sql = "SELECT `kaserne` FROM `gebäude` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$kasernenanzahl = $fetch['kaserne'];
}
////////// mysql ressourcen //////////
$sql = "SELECT `geld` FROM `ressourcen` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$geldhaben = $fetch['geld'];
}
////////// mysql gebäudekosten //////////
$sql = "SELECT `name`, `geld`, `stufe`, `sekunden` FROM `gebäudekosten` WHERE `name` = '$build'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){
$sekunden = $fetch['sekunden'];
$geld_kosten = $fetch['geld'];
}
////////// variablen //////////
$anz = "".$_GET['anz']."";
$maxanzahl = $kasernenanzahl + $anz;
$endwert = $sekunden * $anz;
$endzeit = time() + $endwert;
$geldmal = $geld_kosten * $anz;
$geld_endwert = $geldhaben - $geldmal;
$maximal = 100;
////////// if //////////
if ($maxanzahl <= $maximal AND $geldhaben >= $geld_mal){
$update = mysql_query("UPDATE `aktionen` SET `anzahl` = '$anz', `bau_ende` = '$endzeit', `bau` = '$build' WHERE `UserId` = '$id'");
$update = mysql_query("UPDATE `ressourcen` SET `geld` = '$geld_endwert' WHERE `UserId` = '$id'");
header("Location: bauen.php?action=1");}
////////// else //////////
if ($kasernenanzahl >= $maximal){header("Location: bauen.php?action=2");}
if ($geldhaben < $geld_mal){header("Location: bauen.php?action=3");}
break 1;
//////////////////////////////////////////////////////////// Kaserne ////////////////////////////////////////////////////////////
}
}
?>
js/baucountdown.php
PHP:
<?php
$sql = "SELECT `bau_ende` FROM `aktionen` WHERE `UserId` = '$id'";
$query = mysql_query($sql) or die (mysql_error());
while($fetch = mysql_fetch_array($query)){$date = $fetch['bau_ende'];}
$jetzt = time();
$ende = $date - $jetzt;
?>
<script type="text/javascript">
var NS6 = (!document.all && document.getElementById) ? true : false;
var NS = document.layers ? 1:0;
var IE = document.all ? 1:0;
var gecko = document.getElementById ? 1:0;
var wielang=<?=$ende?>;
var target="test";
function countdown()
{
sekunden=wielang;
stunden=Math.floor(sekunden/3600);
sekunden-=stunden*3600;
minuten=Math.floor(sekunden/60);
sekunden-=minuten*60;
text=+stunden+" Stunden "+minuten+" Minuten "+sekunden+" Sekunden";
if (NS)
{
x = document.layers[target];
text2 = '<p>' + text + '</p>';
x.document.open();
x.document.write(text2);
x.document.close();
}
else if (IE)
{
x = document.all[target];
x.innerHTML = text;
}
else if (gecko)
{
x = document.getElementById(target);
x.innerHTML = text;
}
wielang--;
if (wielang>0)
window.setTimeout("countdown();",1000)
else
parent.location.href='bauen.php';
}
</script>
Zeit: <font face="COURIER NEW" size="-1" id="test"><script type="text/javascript">countdown();</script></span>
Über eure Hilfe wäre ich sehr Dankbar.
Zuletzt bearbeitet: