SQL Tabellenfeld ausgebe, bevor es geändert wird

  • SQL Tabellenfeld ausgebe, bevor es geändert wird

    Ich habe ein Formular, welches Einträge in der Datenbank aktualisiert, die der Benutzer in das Formular eingibt.

    Mein Problem ist, dass ich das Tabellenfeld "version3" vorher noch ausgeben möchte bevor es aktualisiert wird. Ich bekomme aber immer nur den aktualisierten Wert ausgegeben.

    Hier ein Beispiel:

    Quellcode

    1. <?
    2. $result=mysql_query("SELECT * from $tabledownload where id='$_GET[id]'");
    3. $row = mysql_fetch_array($result);{
    4. $version3 = $row["version3"];
    5. $version3alt = $version3;
    6. }
    7. ...
    8. <tr>
    9. <td>Version3:</td>
    10. <td><input type=\"Text\" name=\"adversion3\" value=\"$version3\"></td>
    11. </tr>
    12. ...
    13. mysql_query("UPDATE $tabledownload SET version3='$_POST[adversion3]' WHERE id='$id'");
    14. ...
    15. echo"
    16. <meta http-equiv=\"refresh\" content=\"0; URL=admin.php?action=download_bearbeiten&download_edit=....\">";
    17. }
    18. ...
    19. echo $version3alt." wurde in ".$version3." geändert!";
    Alles anzeigen


    Wie gesagt, es klappt nicht, ich bekomme immer nur den geänderten Wert. Ich möchte aber den Wert, der vor der Änderung in der Tabelle stand. Kann das was mit der Weiterleitung zu tun haben?
  • Also ich würde es jetzt auf die Weiterleitung schieben. Normalerweise würde der Browser doch nach Emfpang der meta-Angabe die neue Seite aufrufen. Und egal, was dort gemacht wird, das Skript hat nur Zugriff auf die (neuen) Daten in der Datenbank. Du könntest den alten Wert per GET an das Skript übergeben.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Vielen Dank euch. Es liegt wirklich an der Weiterleitung.

    Nun zum zweiten Problem:
    Das input Feld: "adversion3" kann man ja mit $_POST['adversion3'] auslesen. Wird ja auch so an das Tabellenfeld gesendet wie man sieht. Nur bekomme ich da immer nur "" ausgegeben, also ist adversion3 leer. Warum? Das Input Feld kann ja gar nicht leer sein, da es durch das value Attribut ja schon gefüllt wird, was man im Formular ja auch sieht. Nur die Ausgabe klappt nicht. Irgendwas übersehen ich, und zwar schon seit gestern. So lange suche ich schon!

    Ich habe nämlich folgende if Abfrage:

    Quellcode

    1. if ($version3 == $_POST['adversion3']) { $lastuph3 = $lastup3; } else { $lastuph3 = date("d.m.Y"); }


    Also wird das Datum in $lastuph3 nur aktualisiert, wenn die Eingabe des Benutzer in Feld adversion3 ein anderer ist, als der, der sich in der Datenbank befindet. Jedoch scheitert die IF Abfrage immer, da

    Quellcode

    1. echo $_POST['adversion3'];

    immer leer ist.

    Jemand eine Idee?
  • So weit ich weiß, werden bei einer Weiterleitung weder POST noch GET Parameter berücksüchtigt. Du hast im ersten Quellcode ein EIngabefeld names adversion3. Wenn du aber später im Quelltext auf eine andere Seite weiterleitest, sind die Daten weg. POST und GET bekommt nur das Script übergeben, welches im action Attribut deines form Objektes steht.
    Alternativ könntest du ja mal die Ausgabe von

    Quellcode

    1. var_dump($_POST)

    posten. Schreib den Code aber in dein Skript, in dem du $_POST brauchst.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Ok, hier also das Ergebnis:

    Quellcode

    1. array(44) { ["action"]=> string(19) "download_bearbeiten" ["download_aendern"]=> string(1) "1" ["id"]=> string(2) "72" ["aus"]=> string(1) "1" ["adfilename"]=> string(8) "Ad-Aware" ["adversion"]=> string(17) "Ad-Aware Free 8.2" ["addownloadfile"]=> string(21) "Ad-AwareInstaller.exe" ["advorschau"]=> string(0) "" ["adbenoetigt"]=> string(41) "2000 / XP / Vista / Vista x64 / 7 / 7 x64" ["adgroesse"]=> string(6) "928500" ["adversion2"]=> string(20) "Ad-Aware Pro 8.1.1.0" ["addownloadfile2"]=> string(16) "Ad-Aware_522.exe" ["adbenoetigt2"]=> string(41) "2000 / XP / Vista / Vista x64 / 7 / 7 x64" ["adgroesse2"]=> string(6) "631300" ["adversion3"]=> string(2) "3a" ["addownloadfile3"]=> string(2) "3b" ["adbenoetigt3"]=> string(2) "3c" ["adgroesse3"]=> string(1) "3" ["adversion4"]=> string(2) "4a" ["addownloadfile4"]=> string(2) "4b" ["adbenoetigt4"]=> string(2) "4c" ["adgroesse4"]=> string(1) "4" ["adversion5"]=> string(2) "5a" ["addownloadfile5"]=> string(2) "5b" ["adbenoetigt5"]=> string(2) "5c" ["adgroesse5"]=> string(1) "5" ["adautor"]=> string(8) "Lavasoft" ["adbeschreibung"]=> string(203) "Ad-Aware gehört unter Anderem auch mit zu der Standardausrüstung eines sicheren Systems. Die 10-jährige Jubiläums-Version wurde nochmals in Sachen Ressourcenverbrauch und diversen Neuerungen verbessert." ["kat_id_neu"]=> string(1) "1" ["addownloads"]=> string(1) "0" ["adtransferlimit"]=> string(1) "0" ["adtip"]=> string(3) "OFF" ["adlastup"]=> string(10) "03.03.2010" ["adlastup2"]=> string(10) "03.03.2010" ["adlastup3"]=> string(38) "Nicht gleich! | 3a | | 3a | 3a | 3a |" ["adlastup4"]=> string(10) "03.03.2010" ["adlastup5"]=> string(10) "03.03.2010" ["adzeigen"]=> string(1) "0" ["fatag"]=> string(2) "12" ["famon"]=> string(2) "07" ["fajahr"]=> string(4) "2007" ["fastd"]=> string(2) "18" ["famin"]=> string(2) "22" ["B1"]=> string(15) "Download ändern" }
  • Quellcode

    1. ["adversion3"]=> string(2) "3a"

    Dort ist dein String im POST Array. Ich kann keinen Fehler an deinem echo statement erkennen. Versuch mal

    Quellcode

    1. echo "{$_POST["adversion"]}";

    Denke zwar nicht, dass es einen Unterschied macht, aber wer weiß ;).

    Poste auch mal das vollständige Skript/HTML-Datei, welche das Formular enthält und das Skript, welches die Angaben des Formulars entgegennimmt.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.