Doppelter Eintrag

oOxsi

Grünschnabel
Hallo,

Ich habe ein problem mit folgendem script.
Wenn man nun das Gebäude bauen kann, wird es doppelt in die Datenbank eingetragen. Ich verstehe aber nicht wieso. Error kommt keiner, nix... Nur wird alles doppelt eingetragen :(

PHP:
require....

$action = $_GET['action'];

// Bestehende Gebäude von der Kolonien Tabelle holen
$geb1 = "SELECT * FROM kolonien WHERE uid = '$player_id' ";
$geb2 = mysql_query ($geb1); 
$kolo_building = mysql_fetch_array ($geb2);

// Metallmine Bauen - - -
$bit = "SELECT * FROM buildings WHERE gid='1'";
$gbit = mysql_query($bit); 
$buildings = mysql_fetch_array($gbit);

	$roh1_time = round($buildings['roh1'] * ($buildings['roh1faktor'] * ($kolo_building['metalmine'] + 1)));
 	$roh2_time = round($buildings['roh2'] * ($buildings['roh2faktor'] * ($kolo_building['metalmine'] + 1)));
 	$time_all = ($roh1_time + $roh2_time);
	$time = date("i:s", $time_all);
	$timestamp = (time() + $time_all);
$roh1_cost = round($buildings['roh1'] * ($buildings['roh1faktor'] * ($kolo_building['metalmine'] + 1)));
$roh2_cost = round($buildings['roh2'] * ($buildings['roh2faktor'] * ($kolo_building['metalmine'] + 1)));
$points = ($roh1_cost + $roh2_cost);

// Bauauftrag Überprüfen und eintragen!
$idb = $_GET['bid'];
if ($action == 'build')
{
	if ($roh1_cost <= $kolo_building['roh1'] && $roh2_cost <= $kolo_building['roh2'])
	{
		echo "Kann gebaut werden!";

	 	$dbup = ("INSERT INTO `build_building` (`uid`, `pid`, `time`, `building`, `points`) 
VALUES ( '".$player_id."', '".$getplanet['id']."', '".$timestamp."', '".$idb."', '$points')");
mysql_query($dbup);

	} else {
		echo "Nicht genügend Rohstoffe!";
	}
}

Weiß vl jemand wieso?
Danke im voraus.

lg
 
Merkwürdig, haste vielleicht einen logischen Fehler und das script wird zwei mal aufgerufen?

In dem SQL ist nix falsch!

Dirk
 
Das script wird durch einen klick auf "Bauen" aufgerufen.
Also ist es eher nicht mäglich das es zwei mal aufgerufen wird.

hmm,.... ich bin vorm verzweifeln :(
 
Mach mal in dein SQL einen Eintrag für die zeit mit microtime() ... und kucke was da in der DB ankommt, ob das wirklich das gleiche SQL-Statement ist!

Dirk
 
2. Eintrag: 0.51978700 1175269043
1.Eintrag: 0.41964300 1175269043

Aber das Script wird doch nur einmal aufgerufen.
Am code ist doch nichts falsch... hm

@kalma: ändert nix :(
 
2. Eintrag: 0.51978700 1175269043
1.Eintrag: 0.41964300 1175269043

Aber das Script wird doch nur einmal aufgerufen.
Am code ist doch nichts falsch... hm

@kalma: ändert nix :(

Naja, irgendwie führt der das SQL aber zwei mal aus .. wo genau, dass ist ohne das komplette project zu kennen schwer zu sagen ;-)

Versuch doch mal einen IDE mit Debugger aufzutreiben und dann schrittweise durchgehen, wenn sich das so logisch nicht erschliesst - kannste ja die testversionen nehmen!

Dirk
 
Das script arbeitet zZ nur mit den connect daten und der $player_id die ich nicht dazugeschrieben habe.

PHP:
$sql = "SELECT ". 
    "* ". 
  "FROM ". 
    "g_users ". 
  "WHERE ". 
    "(username like '".$_SESSION[user_nickname]."') AND ". 
    "(userid = '".$_SESSION[user_id]."')"; 
$result = mysql_query ($sql); 
  $data = mysql_fetch_array ($result); 
  $player_id = "$data[userid]";

Sonst hat das script mit keinerlei anderer Daten bezug.
 
Mhh - ich kann in deinem Skript nirgends eine Schleife erkenne, und zum manullen Klicken reicht die Zeit nicht. Also entweder haste noch ne Schleife, oder das wird per header() oder JS mehrfach aufgerufen und du siehst nur den letzten aufruf .. irgendwie :confused:

Ist das schon irgendwo öffentlich?

Dirk
 
Zurück