Seite 1 von 2

Fehlermeldung bei UPDATE-Befehl

Verfasst: 25.02.2005 08:13
von panoma
Der untenstehende Code verursacht folgende Fehlermeldung:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/kw2/06/108/00000016/htdocs/html/Administration/NEU_siteAdminAktivenTabelleEintragenAction.php on line 37

Line 37 ist die mit der WHERE-Bedingung

Wäre super, wenn jemand eine Problemlösung hätte, vielen Dank schon mal an alle. Schöne Grüße.



<?
$sql = "UPDATE tabelleAktiven
SET position='".$_POST['position']."',
team ='".$_POST['team']."',
spiele ='".$_POST['spiele']."',
gewonnen ='".$_POST['gewonnen']."',
unentschieden ='".$_POST['unentschieden']."',
verloren ='".$_POST['verloren']."',
torefuer ='".$_POST['torefuer']."',
trennzeichen =':',
toregegen ='".$_POST['toregegen']."',
toredifferenz ='".$_POST['torefuer']-$_POST['toregegen']."',
punkte ='".$_POST['gewonnen']*3+$_POST['unentschieden']*1."'
WHERE position == '".$_POST['position']."';
mysql_query($sql) OR die(mysql_error());
echo '<div align="center" valign="top"><br><br>
<font face="arial" size="2"><b>Die Tabellenposition wurde eingefügt<br><br><a href="admin.html">zurück zum Admin-Menue</a></font>
</div>';
?>

Verfasst: 25.02.2005 10:42
von lenni
WHERE position == '".$_POST['position']."';

Hier ist ein "=" zu viel

So ist's richtig: WHERE position = '".$_POST['position']."';

Lenni

Verfasst: 25.02.2005 11:46
von panoma
Hallo danke für deinen Tipp, hab's ausprobiert aber noch immer die gleiche Fehlermeldung. Stimmen denn die Hochkommatas und die Anführungszeichen?

Gruß

Verfasst: 25.02.2005 12:48
von Blutgerinsel
panoma hat geschrieben:Hallo danke für deinen Tipp, hab's ausprobiert aber noch immer die gleiche Fehlermeldung. Stimmen denn die Hochkommatas und die Anführungszeichen?

Gruß
aus dieser Zeile mal:

Code: Alles auswählen

punkte ='".$_POST['gewonnen']*3+$_POST['unentschieden']*1."'
mal das machen:

Code: Alles auswählen

punkte ='".($_POST['gewonnen']*3+$_POST['unentschieden']*1)."'
Auch das SQL Statment vor der DB Abfrage ausgeben zu Testzwecken ist vorteilhaft

Leider noch nicht gelöst

Verfasst: 28.02.2005 08:46
von panoma
Hallo,

hab auch das probiert, funktioniert aber nicht. Es kommt dann eine Meldung mit unexpected "(" usw.
Ich denke, dass irgendwas nicht mit der WHERE Bedingung stimmt. Weiß nur nicht was...

Schöne Grüße

Verfasst: 28.02.2005 10:17
von sonic-ac
Moin,

mach mal die Zeichenkette am Ende der "WHERE" zu, also

Code: Alles auswählen

WHERE position = '".$_POST['position']."'";

Verfasst: 28.02.2005 10:20
von Blutgerinsel
mach ein echo $sql;

Und poste das Ergebnis sonst braucht das noch Jahre bis man so den Fehler findet

Code

Verfasst: 28.02.2005 12:53
von panoma
Hier nochmal der komplette Code. Wie mache ich das mit dem echo $sql?

Code: Alles auswählen

<?php
	$db_link = mysql_connect('PLATZHALTER');
	
	if ($db_link) {
		mysql_select_db('PLATZHALTER', $db_link);
	}
	?>
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive CS">
		<title>Administration</title>
<style media="screen" type="text/css">	
a:link { color:#000000; text-decoration:none }
a:visited { color:#000000; text-decoration:none }
a:hover { color:#ff9900; text-decoration:none }
a:active { color:#ff9900; text-decoration:none }
</style>
	</head>
		

	<body bgcolor="#ffffff" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
		<? 
		echo '$sql = 	"UPDATE tabelleAktiven
				SET position='".$_POST['position']."', 
					team ='".$_POST['team']."', 
					spiele ='".$_POST['spiele']."', 
					gewonnen ='".$_POST['gewonnen']."', 
					unentschieden ='".$_POST['unentschieden']."', 
					verloren ='".$_POST['verloren']."', 
					torefuer ='".$_POST['torefuer']."', 
					trennzeichen =':', 
					toregegen ='".$_POST['toregegen']."', 
					toredifferenz ='".$_POST['torefuer']-$_POST['toregegen']."', 
					punkte ='".$_POST['gewonnen']*3+$_POST['unentschieden']*1."'
				WHERE position = '".$_POST['position']."'"';
		mysql_query($sql) OR die(mysql_error());
		echo '<div align="center" valign="top"><br><br>
				<font face="arial" size="2"><b>Die Tabellenposition wurde eingefügt<br><br><a href="admin.html">zurück zum Admin-Menue</a></font>
				</div>';
		?>
		
	</body>

</html>

Leuchte: [code] eingefügt

Verfasst: 28.02.2005 13:10
von Leuchte

Code: Alles auswählen

<? 
$sql = "UPDATE tabelleAktiven 
SET position='".$_POST['position']."', 
team ='".$_POST['team']."', 
spiele ='".$_POST['spiele']."', 
gewonnen ='".$_POST['gewonnen']."', 
unentschieden ='".$_POST['unentschieden']."', 
verloren ='".$_POST['verloren']."', 
torefuer ='".$_POST['torefuer']."', 
trennzeichen =':', 
toregegen ='".$_POST['toregegen']."', 
toredifferenz ='".$_POST['torefuer']-$_POST['toregegen']."', 
punkte ='".$_POST['gewonnen']*3+$_POST['unentschieden']*1."' 
WHERE position = '".$_POST['position']; 
mysql_query($sql) OR die(mysql_error()); 
echo '<div align="center" valign="top"><br><br> 
<font face="arial" size="2"><b>Die Tabellenposition wurde eingefügt<br><br><a href="admin.html">zurück zum Admin-Menue</a></font> 
</div>'; 
?> 
Und immer schön die

Code: Alles auswählen

-Tags nutzen

Verfasst: 28.02.2005 13:21
von sonic-ac
Leuchte hat geschrieben:

Code: Alles auswählen

WHERE position = '".$_POST['position']; 
Das dürfte zum sql-Fehler führen, da Wert nicht beidseitig eingeschlossen - fehlt also noch ein ' ;-)

Mein Vorschlag 8)

Code: Alles auswählen

$sql = "UPDATE tabelleAktiven
SET position='".$_POST['position']."',
team ='".$_POST['team']."',
spiele ='".$_POST['spiele']."',
gewonnen ='".$_POST['gewonnen']."',
unentschieden ='".$_POST['unentschieden']."',
verloren ='".$_POST['verloren']."',
torefuer ='".$_POST['torefuer']."',
trennzeichen =':',
toregegen ='".$_POST['toregegen']."',
toredifferenz ='".$_POST['torefuer']-$_POST['toregegen']."',
punkte ='".$_POST['gewonnen']*3+$_POST['unentschieden']*1."'
WHERE position = '".$_POST['position'] ."'";