Mysql update per Formular geht nicht

Cyberlord

Grünschnabel
huhu @ll
Ich bin echt am Verzweifeln normal müsste das doch so gehen aber er speichert die sachen einfach nicht in der db hab ihr n tip für mich?

Bye
PHP:
<?
$host = "xxxxxx";
$user = "xxxxxx";
$password = "xxxxxx";
$dbname = "data2";
$tabelle = "test";
$id = '2';


$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "select * from $tabelle WHERE id = '$id'";
$res = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

while ($ausgabe = mysql_fetch_array ($res))
{
echo "<form name='form1' method='post' action='$PHP_SELF'>";
echo "<input type='text' name='id' value='$id'>";
echo "<input type='text' name='1' value='$ausgabe[1]'>";
echo "<input type='text' name='2' value='$ausgabe[2]'>";
echo "<input type='submit' name='submit' value='Ändern'>";
echo "</form>";
}
if ($submit) {
$update = " UPDATE $tabelle SET 1='$ausgabe[1]', 2 = '$ausgabe[2]' WHERE id = '$id'";
$updaten = mysql_query($update);

if (!$updaten)
echo "Fehler aufgetreten!";
else
      {
        echo "Eintrag erfolgreich";
    }

}
?>
 
ich kann mir nicht vorstellen das dein tabellen 1 und 2 heissen :-)

UPDATE $tabelle SET 1='$ausgabe[1]', 2 = '$ausgabe[2]' WHERE id = '$id'";

ansonsten hilft immer

$updaten = mysql_query($update) or die(mysql_error());
 
da bekomm ich diese fehlermeldung ich wüsste aber nicht was da falsch wäre

Fehler in der Syntax bei '1 ='', 2 = '' WHERE id = '2'' in Zeile 1.

EDIT
OK der fehler ist beseitigt es lag daran das der mit 1 und 2 wohl ned zurecht kommt bzw. reserviert wird habs jetzt mal in test1 und test2 umbenannt jetzt ist die fehlermeldung weg und es kommt Eintragung Erfolgreich aber trägt nix ein das was drinstand löscht er raus trägt aber nix neues ein
hier nochmal der geänderte quelltext
PHP:
<?
$host = "xxxxxx";
$user = "xxxxxx";
$password = "xxxxxx";
$dbname = "data2";
$tabelle = "test";
$id = '2';

$dbverbindung = mysql_connect ($host, $user, $password);

$dbanfrage = "select * from $tabelle WHERE id = '$id'";
$res = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);

while ($ausgabe = mysql_fetch_array ($res))
{
echo "<form name='form1' method='post' action='$PHP_SELF'>";
echo "<input type='text' name='id' value='$id'>";
echo "<input type='text' name='test1' value='$ausgabe[test1]'>";
echo "<input type='text' name='test2' value='$ausgabe[test2]'>";
echo "<input type='submit' name='submit' value='Ändern'>";
echo "</form>";
}
if ($submit) {
$update = " UPDATE $tabelle SET test1 = '$ausgabe[test1]', test2 = '$ausgabe[test2]' WHERE id = '$id'";
$updaten = mysql_query($update) or die(mysql_error());

if (!$updaten)
echo "Fehler aufgetreten!";
else
      {
        echo "Eintrag erfolgreich";
    }

}
?>
 
Zuletzt bearbeitet:
Jop, es stimmt nicht ganz, Spaltennamen dürden nicht mit einer Zahl beginnen, nur wundere ich mich, wie du denn bitte eine Tabelle mit solchen Spalten hinbekommen hast, mein SQL hätte da schon Streß gemacht.

Achte des Weiteren auch auf deine Leerzeichen, ansonsten passt ja alles.
 
Re: -

Original geschrieben von Patrick Kamin
Du nennst deine Input-Felder test1 und test, also musst du auch auf diese Variablen zugreifen und nicht auf den Value-Wert.

da lag der fehler habs nun geschafft anstatt
PHP:
$ausgabe[test1]
hätte ich nur
PHP:
$test1
schreiben sollen

Danke für eure hilfe
 
Wenn ich von einem Formular Daten abschicke, sollen Sie den Inhalt der DB updaten.
Ich versuche es mit dieser Anweisung:

<?php

mysql_select_db($database_vezzDB, $vezzDB);
$query_sql = "SELECT * FROM gewinnspiel WHERE partner= '".$_POST['partner']."'";
$sql = mysql_query($query_sql, $vezzDB) or die(mysql_error());
$row_sql = mysql_fetch_assoc($sql);
$totalRows_sql = mysql_num_rows($sql);

?>
<?php

$sql = ("UPDATE gewinnspiel SET
gewinn = '".$_POST['gewinn']."', bildurl = '".$_POST['bildurl']."', partner = '".$_POST['partner']."',
strasse = '".$_POST['strasse']."', hausnr = '".$_POST['hausnr']."', ort = '".$_POST['ort']."', plz = '".$_POST['plz']."',
tel = '".$_POST['tel']."', oeffnungszeit = '".$_POST['oeffnungszeit']."', url = '".$_POST['url']."'") or die(mysql_error());

?>

Es klappt einfach nicht. Wo liegt mein Fehler?
 
da lag der fehler habs nun geschafft anstatt
PHP:
$ausgabe[test1]
hätte ich nur
PHP:
$test1
schreiben sollen

Wie genau meinst du das?
Ich habe mir deinen Code als Vorlage genommen um auch ein Updatescript zu schreiben.
Bei mir speichert er auch nicht ..

Code:
<?php
mysql_connect("localhost", ",meinusername", "meinpasswort")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("meineddb");

$result = mysql_query("SELECT id, artnr, videoid FROM youtubevideos ORDER BY id DESC");
?>
<table align="center" border="1" cellpadding="0" cellspacing="0">
<?php
while ($row = mysql_fetch_array($result))
{
    echo "<form name='form1' method='post' action='$PHP_SELF'>"; 
	?>
    <tr>
    <td align="center" style="padding:10px">
	<?php echo "<input type='hidden' name='id' value='$row[id]'>"; ?>
	<?php echo $row[id];?></td>
    <td align="center" style="padding:10px">
	<?php echo "<input type='text' name='artnr' value='$row[artnr]'>"; ?>
	<?php //echo $artnr;?></td>
    <td align="center" style="padding:10px"></td>
    <td align="center" style="padding:10px"></td>
    <td align="center" style="padding:10px">
	<?php echo "<input type='text' name='videoid' value='$row[videoid]'>"; ?>
	<?php //echo $videoid;?></td>
    <td><?php echo "<input type='submit' name='submit' value='Ändern'>"; ?></td>
    </tr>
    <?php echo "</form>";
}
	if ($submit)
{ 
	$update = "UPDATE youtubevideos SET artnr = '$artnr', videoid = '$videoid' WHERE id = '$id'"; 
	echo $update;
	$updaten = mysql_query($update) or die(mysql_error()); 

	if (!$updaten) 
	echo "Fehler aufgetreten!"; 
	else 
    { 
    	echo "Eintrag erfolgreich"; 
    } 
} 
?>
</table>

Kann mir einer sagen wo ich da den Fehler haben?
Bin noch nicht so bewandert im php .. arbeite noch drann :)
 
Wird das SQL-Statement zurückgegeben oder der Text "Eintrag erfolgreich" ?
Ansonsten:
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Hey das ging schnell :)
Nein, das SQL Statement wird nicht ausgegeben. Die Seite wird einfach nur neu geladen und die Änderungen nicht in die MySQL Datenbank geschrieben.
 
Zurück