Formularfeld mit mssql Feld vergleichen und daten in anderes Feld speichern
Hallo,
Ich habe eine Tabelle mit php und mssql.
Mit einem Formlar werden da Daten in eine mssql DB gespeichert.
Mit einer Seite kann man die Daten verändern.
Jetzt hätte ich gern, das wenn man einen Wert verändert und den zurückspeichert,
sollte der dann Farbig unterlegt sein.
Ich dachte mir da sollte das Eingabe Feld mit dem DB Feld verglichen werden und
wenn was unterschiedlich ist, sollte eine Farbe in ein anders Feld geschrieben werden.
Kann mir da jemand einen Tipp geben wie und mit welchen Befehlen ich das Eingebefeld
mit dem DB-Feld vergleiche?
Gruß
Helmut
Ich habe eine Tabelle mit php und mssql.
Mit einem Formlar werden da Daten in eine mssql DB gespeichert.
Mit einer Seite kann man die Daten verändern.
Jetzt hätte ich gern, das wenn man einen Wert verändert und den zurückspeichert,
sollte der dann Farbig unterlegt sein.
Ich dachte mir da sollte das Eingabe Feld mit dem DB Feld verglichen werden und
wenn was unterschiedlich ist, sollte eine Farbe in ein anders Feld geschrieben werden.
Kann mir da jemand einen Tipp geben wie und mit welchen Befehlen ich das Eingebefeld
mit dem DB-Feld vergleiche?
Gruß
Helmut
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195217
Url: https://administrator.de/forum/formularfeld-mit-mssql-feld-vergleichen-und-daten-in-anderes-feld-speichern-195217.html
Ausgedruckt am: 04.04.2025 um 18:04 Uhr
9 Kommentare
Neuester Kommentar
... ich verstehe das nicht so ganz wie du das willst.
Aber ich würde sagen, du musst vor dem UPDATE einfach nochmal ein SELECT über alle Felder machen und den Vergleich in PHP durchführen und zwischen speichern bis dein Formular wieder aufgebaut wird.
also für den Speichervorgang:
Aber ich würde sagen, du musst vor dem UPDATE einfach nochmal ein SELECT über alle Felder machen und den Vergleich in PHP durchführen und zwischen speichern bis dein Formular wieder aufgebaut wird.
also für den Speichervorgang:
- Form Daten empfangen
- SELECT ausführen
- Daten vergleichen und Ergebniss speichern
- UPDATE ausführen
- Formular mit Daten und Ergebniss anzeigen
Hi,
leider verrätst du die Strategie nicht, die du mit dem Vorhaben verfolgst, eine Änderung farblich zu hinterlegen.
Ergebnis wäre ja z.B., ich würde deine Seite aufrufen, da erscheint ein Wert in rot. Was sagt mir das?
Und selbst wenn ich weiß, dass die Farbe rot eine Änderung kennzeichnet, was hab' ich davon?
Der alte Wert ist futsch, weil er überschrieben wurde.
Dann hast du eine Tabelle, die ja sicherlich mehr als eine Spalte enthält. Somit stellt sich noch die Frage,
willst du den Datensatz kennzeichnen und eine Farbe hinterlegen oder willst du tatsächlich für jedes Feld ein Farbfeld hinterlegen.
Beispiel 1:
oder Beispiel 2:
Ich würde im Änderungsformular die Daten ausgeben, die Daten zum Ändern nochmals in Textfelder ausgeben, damit die Felder schon mal
mit Werten vorbelegt sind und man nicht jedes Feld neu eingeben muß, und zusätzlich die Daten noch in Hiddenfelder speichern.
Dann kannst du mit dem Trinitäts-Operator die Textfelder mit den Hiddenfeldern vergleichen, und den Variablen für dein Update den Wert zuweisen.
Beispiel:
Um Änderungen zu verfolgen, würde ich das jedoch anders machen. Eine Tabelle, in der gespeichert wird . . .
- welche Tabelle wurde geändert
- welches Feld wurde geändert
- den alten Wert
- den neuen Wert
- wann fand die Änderung statt
- wer hat die Änderung vorgenommen
Gruß
Günni
leider verrätst du die Strategie nicht, die du mit dem Vorhaben verfolgst, eine Änderung farblich zu hinterlegen.
Ergebnis wäre ja z.B., ich würde deine Seite aufrufen, da erscheint ein Wert in rot. Was sagt mir das?
Und selbst wenn ich weiß, dass die Farbe rot eine Änderung kennzeichnet, was hab' ich davon?
Der alte Wert ist futsch, weil er überschrieben wurde.
Dann hast du eine Tabelle, die ja sicherlich mehr als eine Spalte enthält. Somit stellt sich noch die Frage,
willst du den Datensatz kennzeichnen und eine Farbe hinterlegen oder willst du tatsächlich für jedes Feld ein Farbfeld hinterlegen.
Beispiel 1:
id | Vorname | Nachname | Telefon | Satz_geändert |
1 | Wilhelm | Busch | 0123/4567 | Farbangabe |
oder Beispiel 2:
id | Vorname | Nachname | Telefon | id_geändert | Vorname_geändert | Nachname_geändert | Telefon_geändert |
1 | Wilhelm | Busch | 0123/4567 | Farbangabe | Farbangabe | Farbangabe | Farbangabe |
Ich würde im Änderungsformular die Daten ausgeben, die Daten zum Ändern nochmals in Textfelder ausgeben, damit die Felder schon mal
mit Werten vorbelegt sind und man nicht jedes Feld neu eingeben muß, und zusätzlich die Daten noch in Hiddenfelder speichern.
Dann kannst du mit dem Trinitäts-Operator die Textfelder mit den Hiddenfeldern vergleichen, und den Variablen für dein Update den Wert zuweisen.
Beispiel:
$var_vorname = $_Post['text_feld_vorname_neu'] == $_Post['hidden_feld_vorname_alt'] ? $_Post['hidden_feld_vorname_alt'] : $_Post['text_feld_vorname_neu'];
Um Änderungen zu verfolgen, würde ich das jedoch anders machen. Eine Tabelle, in der gespeichert wird . . .
- welche Tabelle wurde geändert
- welches Feld wurde geändert
- den alten Wert
- den neuen Wert
- wann fand die Änderung statt
- wer hat die Änderung vorgenommen
id_tabellen_datensatz | tabellenname | Feld | Alter_Wert | Neuer_Wert | Änderungsdatum | von_wem_geändert |
1 | Dichter | Vorname | Wilhelm | Willimaus | 01.04.1910 | Max und Moritz |
2 | Dichter | Vorname | Willimaus | Wilhelm | 02.04.1910 | Wilhelm Busch |
Gruß
Günni
Hi Helmut,
also irgendwie versteh' ich nicht, worauf du hinaus willst.
Gehen wir mal nur von deiner Stückzahl aus.
Also du fragst eine Tabelle nach Feld Stückzahl ab.
Dann zeigst du ein Formular mit . . .
- Textfeld, Inhalt (value) = Stückzahl, User gibt neuen Wert ein
- Hiddenfeld, Inhalt (value) = Stückzahl aus einer Tabelle
Nach Absenden prüfst du einfach, ob der Wert des Textfeldes mit dem Wert des Hiddenfeldes übereinstimmt.
Genauso setzt du dann den Farbwert, wenn etwas geändert wurde.
Gruß
Günni
also irgendwie versteh' ich nicht, worauf du hinaus willst.
Gehen wir mal nur von deiner Stückzahl aus.
Also du fragst eine Tabelle nach Feld Stückzahl ab.
Dann zeigst du ein Formular mit . . .
- Textfeld, Inhalt (value) = Stückzahl, User gibt neuen Wert ein
- Hiddenfeld, Inhalt (value) = Stückzahl aus einer Tabelle
Nach Absenden prüfst du einfach, ob der Wert des Textfeldes mit dem Wert des Hiddenfeldes übereinstimmt.
<?php
if(isset($_POST['cmd'])){
$stueck = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_stueck'] : $_POST['txt_stueck'];
$query='update tabelle set stueck = '.$stueck.' where id = 1';
}
echo $query;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
/*
* Stückzahl aus einer Tabelle
*/
$stueck=98;
?>
<form action="" method="post">
<p>Stückzahl <input type="text" name="txt_stueck" value="<?php echo $stueck ?>" /></p>
<p><input type="hidden" name="hidden_txt_stueck" value="<?php echo $stueck; ?>" /></p>
<p><input type="submit" name="cmd" value="Edit" /></p>
</form>
</body>
</html>
Genauso setzt du dann den Farbwert, wenn etwas geändert wurde.
Gruß
Günni
Hi Helmut,
"da" nicht.
Ich hatte geschrieben Genauso setzt du dann den Farbwert, wenn etwas geändert wurde.,
und gedacht, das würde dich inspirieren, mal etwas auszuprobieren.
Da du den Farbwert ja in der Tabelle speichern willst, würde ich diesen auch auslesen und . . .
- als "Style" im Textfeld verwenden
- in einem Hiddenfeld speichern
Um einen neuen Farbwert zu setzen, könnte man diesen z.B. in einem select-Feld auswählen.
<?php
if(isset($_POST['cmd'])){
$stueck = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_stueck'] : $_POST['txt_stueck'];
$farbwert = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_farbwert'] : $_POST['sel_farbwert'];
$query='update tabelle set stueck = '.$stueck.', farbwert = '.$farbwert.' where id = 1';
}
echo $query;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<?php
/*
* Stückzahl aus einer Tabelle
*/
$stueck=98;
/*
* Farbwert aus einer Tabelle
*/
//$farbwert='white';
?>
<form action="" method="post">
<p>Stückzahl <input type="text" style="background-color: <?php echo $farbwert; ?>;" name="txt_stueck" value="<?php echo $stueck ?>" /></p>
<p><input type="hidden" name="hidden_txt_stueck" value="<?php echo $stueck; ?>" /></p>
<p>Farbwert <select name="sel_farbwert">
<option value="<?php echo $farbwert; ?>"> -- Farbwert wählen -- </option>
<option value="red">Rot</option>
<option value="lightgreen">Grün</option>
</select></p>
<p><input type="hidden" name="hidden_txt_farbwert" value="<?php echo $farbwert; ?>" /></p>
<p><input type="submit" name="cmd" value="Edit" /></p>
</form>
</body>
</html>
Gruß
Günni
Zitat von @helmuthelmut2000:
Hallo Günni,
Ich hatte leider einige Zeit etwas anderes zu tun und konnte an dem Thema nicht
weiter Arbeiten.
Ich muß ich die Sache erneut angehen und mal zu Ende bringen.
Kannst Du mir bitte das obige script etwas näher Erklären?
Ich komm da nicht so ganz klar.
Wo schreib ich denn da den DB Wert rein?
Danke.
Hallo Günni,
Ich hatte leider einige Zeit etwas anderes zu tun und konnte an dem Thema nicht
weiter Arbeiten.
Ich muß ich die Sache erneut angehen und mal zu Ende bringen.
Kannst Du mir bitte das obige script etwas näher Erklären?
Ich komm da nicht so ganz klar.
Wo schreib ich denn da den DB Wert rein?
Danke.
Hi Helmut,
das ist ja nur ein kleines Beispiel.
In Stückzahl würdest du den neuen Wert eintragen, mit Farbwert wählst du eine
neue Farbe für den Hintergrund des Stückzahl-Felds.
Der alte Stückzahlwert steht außerdem in einem Hiddenfeld.
Das Script vergleicht nun den neuen mit dem alten Wert. Bei Ungleichheit(Änderung) wird der
neu gewählte Farbwert für den Hintergrund gesetzt.
Gruß
Günni