MySQL Daten werden nicht gespeichert
Andavos
- datenbank
Hallo,
also ich habe einen sehr sehr sehr komischen Fehler, ich versuche ihn deshalb so gut wie möglich zu erklären.
Also als Datenbank benutze ich MySQL.
Also ich habe ein PHP datei, die ca. so aussieht:
<?php
$save = $_GET["save"];
$was = $_GET["was"];
$userid = $_SESSION["id"];
if($save == "profil")
{
$feld = $_POST["feld"];
$aendern = "UPDATE tabelle Set feld = '$feld' WHERE id = '$userid'";
$update = mysql_query($aendern);
if($update == true)
{
echo "Alles klar: $aendern";
}
else
{
echo "Fehler";
echo mysql_error();
}
}
if($was == "profil")
{
$abfrage = "SELECT feld FROM tabelle WHERE id = '$userid'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
echo "<form action="?was=profil&save=profil" method="post">";
//Input mit Submit Button
//Input hat den Wert: $row->feld als Value
echo "
</form>
";
?>
Naja kein Aufweniger Script.
Sendet der User den Script ab, wird es an: ?was=profil&save=profil gesendet.
Die Ausgabe ist:
"Alles klar: UPDATE tabelle Set feld = 'mein Wert' WHERE id = '1'"
Das Problem ist nur, er speichert in der Datenbank _keinen_ Wert ab, so dass danach der Default Wert steht.
Das Kuriose (#1) daran ist, wenn ich den Script nach der Ausgabe "Alles klar..." mit exit; unterbreche, so wird der Wert ganz normal gespeichert.
Das gleiche gilt, wenn ich nach der Ausgabe den Script per header() an: ?was=profil sende.
Dann speichert er den Wert auch.
Das Kuriose (#2) ist, dass es auf meinem lokalem Server (Xampp && PHP 5.x) funktioniert, auf anderen Servern funktioniert dies auch, aber _nur_ auf meinem Webspace funktioniert das nicht.
Hier mal die PHPInfo: http://www.php-einfach.de/phpinfo.php
Und nein, ich habe dort kein andere Update oder ähnliches drin, welches die Spalte nach dem Update nochmal leer überschreibt.
MFG
Andavos
<?php
$save = $_GET["save"];
$was = $_GET["was"];
$userid = $_SESSION["id"];
if($save == "profil")
{
$feld = $_POST["feld"];
$aendern = "UPDATE tabelle Set feld = '$feld' WHERE id = '$userid'";
$update = mysql_query($aendern);
if($update == true)
{
echo "Alles klar: $aendern";
}
else
{
echo "Fehler";
echo mysql_error();
}
}
if($was == "profil")
{
$abfrage = "SELECT feld FROM tabelle WHERE id = '$userid'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
} ### diese Klammer hat gefehlt!
echo "<form action="?was=profil&save=profil" method="post">";
//Input mit Submit Button
//Input hat den Wert: $row->feld als Value
echo "
</form>
";
?>
Und meine Schreibweise ist doch die übersichtlichste! *ggg*
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo Tom,
} ### diese Klammer hat gefehlt!
so leicht ist es leider nicht.
Die habe ich hier vergessen weil ich das Script verkürtzt habe, also unwichtige Sachen rausgenommen.
Der untere Teil sieht richtig so aus:
//Save etc.
if($was == "profil")
{
$abfrage = "SELECT feld FROM tabelle WHERE id = '$userid'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
echo "<form action="?was=profil&save=profil" method="post">";
//Input mit Submit Button
//Input hat den Wert: $row->feld als Value
echo "</form>";
} ### diese Klammer hat gefehlt!
//Weiter Code
MFG
Andavos