johntherippa
Goto Top

2 Datenbankeinträge auf einmal ungewollt

Hi,

Ich bin gerade dabei eine Art Datenbank zu erstellen. Um diese mit Daten zu füttern, habe ich ein Script entwickelt.
Die EIngabemaske ist glaube ich erstmal egal. Weil die Fehler kommen erst beim Eintragen.
Die Datei Datseintragen.php wird als form action="Dats....php" aufgerufen.

Eintragen(Datseintragen.php)

<?php
include('dbconnect.php');  

if($zutaten == "0")  
{
	echo 'Daten werden eingetragen.';  
	
	$name = htmlentities($name);
	$skill = htmlentities($skill);
	$gebaeude = htmlentities($gebaeude);
	
	$eintrag = "INSERT INTO daten (zutaten, name, skill, typ, level, produkte, zeit, gebaeude, einkaufspreis, verkaufspreis)   
	VALUES ('$zutaten', '$name', '$skill', '$typ', '$level', '$produkte', '$zeit', '$gebaeude', '$einkaufspreis', '$verkaufspreis')";  
	$eintragen = mysql_query($eintrag);
	mysql_close($verbindung);
	
	echo '<br><a href="../Index.php">zurück</a>';  
}
?>

Daraus folgt, dass 2 EInträge in der Datenbank erzeugt werden mit genau den selben Inhalten, außer der ID, da diese autoincrement hat.
Allerdings soll es nur einen Eintrag geben. Habt ihr ne Ahnung woran das liegen könnte?
An der Datei dbconnect.php liegt es d´nicht, da diese für andere Scripte einwandfrei funktioniert.

Content-ID: 91600

Url: https://administrator.de/contentid/91600

Ausgedruckt am: 19.11.2024 um 11:11 Uhr

kochi09
kochi09 09.07.2008 um 08:20:56 Uhr
Goto Top
Wo definierst Du $zutaten? Hast Du das ganze Script mal da?

und

Hast Du Dir $eintrag schonmal mit echo ausgeben lassen und wird der Eintrag dann auch zweimal ausgegeben?

gruß kochi
JohntherippA
JohntherippA 09.07.2008 um 12:45:36 Uhr
Goto Top
Hi, also wenn ich $eintrag ausgebe kommt es nur einmal.

Anscheinend liegt es an diesem Eintrag in der Datei Datseintragen.php:
Line 17 echo '<br><a href="../Index.php">zurück</a>';

Belustigend ist sowiso, dass zuerst der höhere Eintrag erstellt wird.

Also z.B. (Man werfe einen Blick auf 43 und 44

ID | Name
41 | nr 411
42 | nr. 412
44 | Tertz
43 | Tertz

Unten trotzdem nochmal der restliche Code.
Hier der SQL Befehl für DB:
CREATE TABLE IF NOT EXISTS `daten` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `zutaten` int(10) NOT NULL,
  `name` varchar(40) collate latin1_general_ci NOT NULL,
  `skill` varchar(40) collate latin1_general_ci NOT NULL,
  `typ` varchar(40) collate latin1_general_ci NOT NULL,
  `level` int(10) NOT NULL,
  `zutat_1` varchar(40) collate latin1_general_ci NOT NULL,
  `stk_1` int(10) NOT NULL,
  `mp_1` int(10) NOT NULL,
  `zutat_2` varchar(40) collate latin1_general_ci NOT NULL,
  `stk_2` int(10) NOT NULL,
  `mp_2` int(10) NOT NULL,
  `zutat_3` varchar(40) collate latin1_general_ci NOT NULL,
  `stk_3` int(10) NOT NULL,
  `mp_3` int(10) NOT NULL,
  `zutat_4` varchar(40) collate latin1_general_ci NOT NULL,
  `stk_4` int(10) NOT NULL,
  `mp_4` int(10) NOT NULL,
  `produkte` int(10) NOT NULL,
  `zeit` int(10) NOT NULL,
  `gebaeude` varchar(40) collate latin1_general_ci NOT NULL,
  `einkaufspreis` int(10) NOT NULL,
  `verkaufspreis` int(10) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;
Hier die eingabemaske:
Index.php:
<?php
echo '<html>  
<head>
<title>
Evergore - Quelltext schreiben
</title>
</head>
<body bgcolor="black" style="font-family:Cracked Johnnie;color" link="black" alink="black" vlink="black">  
<center>
<table cellspacing="0">  
	<tr background="resources/body_head.jpg">  
		<td width="596" height="30">  
		</td>
	</tr>
	<tr background="resources/body.jpg" align="center">  
		<td>
			<form name="datesaktu" action="resources/Datseintragen.php">  
				<h1 style="color:#CC0000">Datenbank eintragen</h1>  
				<table>
					<tr>
						<td>
							Zutaten:
						</td>
						<td>
							<select name="zutaten" style="font-family:Cracked Johnnie; background-color:#000099; color:limegreen">  
								<option onClick="location.href = \'Index.php?id=0\';"';  
							if($id == "0"){echo ' selected';}  
							echo '>0</option>  
								<option onClick="location.href = \'Index.php?id=2\';"';  
							if($id == "2"){echo ' selected';}  
							echo ' value="2">2</option>  
								<option onClick="location.href = \'Index.php?id=3\';"';  
							if($id == "3"){echo ' selected';}  
							echo ' value="3">3</option>  
								<option onClick="location.href = \'Index.php?id=4\';"';  
							if($id == "4"){echo ' selected';}  
							echo ' value="4">4</option>  
							</select>
						</td>
					</tr>
					<tr height="20">  
					</tr>
					<tr>
						<td>
							Name:
						</td>
						<td>
							<input type="text" name="name" style="background-color:#000099; color:limegreen" maxlength="40">  
						</td>
					</tr>
					<tr>
						<td>
							Skill:
						</td>
						<td>
							<select name="skill" style="font-family:Cracked Johnnie; background-color:#000099; color:limegreen">  
								<option value=""></option>  
								<option value="Holzverarbeitung">Holzverarbeitung</option>  
								<option value="Steinverarbeitung">Steinverarbeitung</option>  
								<option value="Erzverarbeitung">Erzverarbeitung</option>  
								<option value="Stoff- & Lederverarbeitung">Stoff- & Lederverarbeitung</option>  
								<option value="Konstrukteur">Konstrukteur</option>  
								<option value="Schmieden (Schwerter)">Schmieden (Schwerter)</option>  
								<option value="Schmieden (Dolche)">Schmieden (Dolche)</option>  
								<option value="Schmieden (Äxte)">Schmieden (Äxte)</option>  
								<option value="Schmieden (Keulen)">Schmieden (Keulen)</option>  
								<option value="Schmieden (Stangenwaffen)">Schmieden (Stangenwaffen)</option>  
								<option value="Schmieden (Leichte Rüstungen)">Schmieden (Leichte Rüstungen)</option>  
								<option value="Schmieden (Schwere Rüstungen)">Schmieden (Schwere Rüstungen)</option>  
								<option value="Schmieden (Magierstäbe)">Schmieden (Magierstäbe)</option>  
								<option value="Bognern (Bögen)">Bognern (Bögen)</option>  
								<option value="Bognern (Armbrüste)">Bognern (Armbrüste)</option>  
								<option value="Schneidern (Leichte Rüstungen)">Schneidern (Leichte Rüstungen)</option>  
								<option value="Alchemie">Alchemie</option>  
							</select>
						</td>
					</tr>
					<tr>
						<td>
							Typ:
						</td>
						<td>
							<select name="typ" style="font-family:Cracked Johnnie; background-color:#000099; color:limegreen">  
								<option value=""></option>  
								<option value="erz">Erz</option>  
								<option value="barren">Barren</option>  
							</select>
						</td>
					</tr>
					<tr>
						<td>
							Level:
						</td>
						<td>
							<input type="text" name="level" style="background-color:#000099; color:limegreen" maxlength="10">  
						</td>
					</tr>';  
					
					include('resources/zutaten.php');  
					
					echo '  
					<tr>
						<td>
							Produkte:
						</td>
						<td>
							<input type="text" name="produkte" style="background-color:#000099; color:limegreen" maxlength="10"> Stk.  
						</td>
					</tr>
					<tr>
						<td>
							Produktionszeit:&nbsp;
						</td>
						<td>
							<input type="text" name="zeit" style="background-color:#000099; color:limegreen" maxlength="10"> h  
						</td>
					</tr>
					<tr>
						<td>
							Geb&auml;ude
						</td>
						<td>
							<select name="gebaeude" style="font-family:Cracked Johnnie; background-color:#000099; color:limegreen">  
								<option value=""></option>  
								<option value="Forstanlage">Forstanlage</option>  
								<option value="Steinbruch">Steinbruch</option>  
								<option value="Bergwerk">Bergwerk</option>  
								<option value="Sägewerk">Sägewerk</option>  
								<option value="Ziegelei">Ziegelei</option>  
								<option value="Schmelze">Schmelze</option>  
								<option value="Gerberei">Gerberei</option>  
								<option value="Weberei">Weberei</option>  
								<option value="Schmiede">Schmiede</option>  
								<option value="Sattlerei">Sattlerei</option>  
								<option value="Werkstatt">Werkstatt</option>  
								<option value="Schneiderei">Schneiderei</option>  
								<option value="Laboratorium">Laboratorium</option>  
								<option value="Bauhof">Bauhof</option>  
							</select>
						</td>
					</tr>
					<tr>
						<td>
							Einkaufspreis:
						</td>
						<td>
							<input type="text" name="einkaufspreis" style="background-color:#000099; color:limegreen" maxlength="10"> Gold  
						</td>
					</tr>
					<tr>
						<td>
							Verkaufspreis:
						</td>
						<td>
							<input type="text" name="verkaufspreis" style="background-color:#000099; color:limegreen" maxlength="10"> Gold  
						</td>
					</tr>
					<tr height="20">  
					</tr>
					<tr>
						<td colspan="2" align="center">  
							<input type="submit" value="Eintragen">  
						</td>
					</tr>
				</table>
			</form>
		</td>
	</tr>
	<tr background="resources/body_foot.jpg">  
		<td height="12">  
		</td>
	</tr>
</table>
</center>
</body>
</html>';  
?>

Zutaten.php:
<?php

if($id == "2")  
{
	echo '  
	<tr bgcolor="#00FF00">  
		<td>
			Zutat 1:
		</td>
		<td>
			<input type="text" name="zutat_1" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Stk. X Zutat 1:
		</td>
		<td>
			<input type="text" name="stk_1" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_1" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#FF0000">  
		<td>
			Zutat 2:
		</td>
		<td>
			<input type="text" name="zutat_2" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Stk. X Zutat 2:
		</td>
		<td>
			<input type="text" name="stk_2" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_2" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
}
else if($id == "3")  
{
	echo '  
	<tr bgcolor="#00FF00">  
		<td>
			Zutat 1:
		</td>
		<td>
			<input type="text" name="zutat_1" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Stk. X Zutat 1:
		</td>
		<td>
			<input type="text" name="stk_1" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_1" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#FF0000">  
		<td>
			Zutat 2:
		</td>
		<td>
			<input type="text" name="zutat_2" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Stk. X Zutat 2:
		</td>
		<td>
			<input type="text" name="stk_2" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_2" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#00FF00">  
		<td>
			Zutat 3:
		</td>
		<td>
			<input type="text" name="zutat_3" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Stk. X Zutat 3:
		</td>
		<td>
			<input type="text" name="stk_3" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_3" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
}
else if($id == "4")  
{
	echo '  
	<tr bgcolor="#00FF00">  
		<td>
			Zutat 1:
		</td>
		<td>
			<input type="text" name="zutat_1" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Stk. X Zutat 1:
		</td>
		<td>
			<input type="text" name="stk_1" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_1" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#FF0000">  
		<td>
			Zutat 2:
		</td>
		<td>
			<input type="text" name="zutat_2" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Stk. X Zutat 2:
		</td>
		<td>
			<input type="text" name="stk_2" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_2" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#00FF00">  
		<td>
			Zutat 3:
		</td>
		<td>
			<input type="text" name="zutat_3" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Stk. X Zutat 3:
		</td>
		<td>
			<input type="text" name="stk_3" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#00FF00">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_3" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
	
	echo '  
	<tr bgcolor="#FF0000">  
		<td>
			Zutat 4:
		</td>
		<td>
			<input type="text" name="zutat_4" style="background-color:#000099; color:limegreen" maxlength="40">  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Stk. X Zutat 4:
		</td>
		<td>
			<input type="text" name="stk_4" style="background-color:#000099; color:limegreen" maxlength="40"> Stk.  
		</td>
	</tr>
	<tr bgcolor="#FF0000">  
		<td>
			Marktpreis:
		</td>
		<td>
			<input type="text" name="mp_4" style="background-color:#000099; color:limegreen" maxlength="40"> Gold  
		</td>
	</tr>';  
}
?>
scan5416
scan5416 10.07.2008 um 07:56:38 Uhr
Goto Top
Hi

Sehr komisch. Auf die ersten beiden Blicken kann ich keinen Fehler entdecken.
Hast du einen Eintrag in der "error_log" Datei?

Wenn ja, dann poste dieser doch mal bitte.

Gruss

scan
JohntherippA
JohntherippA 10.07.2008 um 12:19:28 Uhr
Goto Top
Hi.

Öhm Wie finde ich die besagte Error Log Datei? face-smile
Also muss man das einstellen?

Zur Umgebung: Benutze XAMPP (Localer Server)
NetzPaul
NetzPaul 11.01.2009 um 18:09:44 Uhr
Goto Top
Hi,

Ich habe das selbe Problem. Ich benutze eine selbst geschriebene MySQL-Klasse, die auf mehreren Seiten fehlerfrei läuft. Lokal auf meinem XAMPP tritt der Fehler nicht auf, aber online (Linux) füllt er zwei mal ein. Auf der selben Seite wird die Klasse auch benutzt und macht diese Macken nicht.
Ich habe das Problem dahingehend umgangen, dass ich eine Kontrolle eingebaut habe, die den Hashwert des neuen Eintrags mit dem Hashwert des vorhergehenden Eintrags vergleicht und falls seit dem letzten gleiche Eintrag <= 2 Sekunden vergangen sind, ignoriert.