Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Formularfeld mit mssql Feld vergleichen und daten in anderes Feld speichern

Frage Entwicklung PHP

Mitglied: helmuthelmut2000

helmuthelmut2000 (Level 2) - Jetzt verbinden

01.12.2012 um 21:44 Uhr, 3001 Aufrufe, 9 Kommentare

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
Mitglied: nxclass
02.12.2012 um 12:43 Uhr
... 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:
  • Form Daten empfangen
  • SELECT ausführen
  • Daten vergleichen und Ergebniss speichern
  • UPDATE ausführen
  • Formular mit Daten und Ergebniss anzeigen
Bitte warten ..
Mitglied: Guenni
02.12.2012 um 16:18 Uhr
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:

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
Bitte warten ..
Mitglied: helmuthelmut2000
03.12.2012 um 19:44 Uhr
Hallo Günni,

Das ist eine Tabelle wo die Aufträge von Kunden verwaltet werden. Und sollte sich da eine Stückzahl
ändern, sollte das Farblich hervorgehoben sein. Jetzt hab ich da eine Spalte in meiner DB hinzugefügt
mit dem Namen Markierung.
Wenn ich das Änderungsformular aufrufe, dann sind die Textfelder schon vorbelegt.

Jetzt möchte ich das mit dem Trinitäts-Operator hinbekommen, das der Farbwert nur bei einer Änderung
im Stückzahl Feld in die DB geschrieben wird.

Gruß
Helmut
Bitte warten ..
Mitglied: helmuthelmut2000
05.12.2012 um 13:23 Uhr
Hallo Günni,

Ich bin da jetzt ein Stück weitergekommen, komme aber nicht ans Ziel.
Kannst Du mir da noch ein Weiterhelfen?

Ich hab das jetzt so, das wenn ich 2 Unterschiedliche Zahlen habe, werden mir 2
Unterschiedliche Texte in en DB Feld geschrieben.

$a = 3;
$b = 4;
if ($a == $b) echo "<input type='hidden' value='1000' name='markieren_stueck' id='markieren_stueck' />";
if ($a != $b) echo "<input type='hidden' value='2000' name='markieren_stueck' id='markieren_stueck' />";

Wenn ich $a = $b gleich mach dann wird die Zahl 1000 geschrieben und bei Unterschiedlichen Zahlen die Zahl 2000.

Jetzt hab ich das Problem mit dem Textfeld $a = 3 und das was in der DB steht $b = 4.

Wie bringt man das noch hin?

Mit freundlichen Grüßen
Helmut
Bitte warten ..
Mitglied: Guenni
10.12.2012 um 11:26 Uhr
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.

01.
<?php 
02.
if(isset($_POST['cmd'])){ 
03.
	$stueck = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_stueck'] : $_POST['txt_stueck']; 
04.
	$query='update tabelle set stueck = '.$stueck.' where id = 1'
05.
06.
echo $query
07.
?> 
08.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
09.
<html> 
10.
<head> 
11.
<title>Untitled</title> 
12.
</head> 
13.
<body> 
14.
<?php 
15.
/* 
16.
* Stückzahl aus einer Tabelle 
17.
*/ 
18.
$stueck=98; 
19.
?> 
20.
<form action="" method="post"
21.
<p>Stückzahl <input type="text" name="txt_stueck" value="<?php echo $stueck  ?>" /></p> 
22.
<p><input type="hidden" name="hidden_txt_stueck"  value="<?php echo $stueck; ?>" /></p> 
23.
<p><input type="submit" name="cmd" value="Edit" /></p> 
24.
</form> 
25.
</body> 
26.
</html>
Genauso setzt du dann den Farbwert, wenn etwas geändert wurde.

Gruß
Günni
Bitte warten ..
Mitglied: helmuthelmut2000
12.12.2012 um 22:57 Uhr
Hallo Günni,

Wo setzt ich da den Farbwert?

Gruß
Helmut
Bitte warten ..
Mitglied: Guenni
14.12.2012, aktualisiert 08.03.2013
Zitat von helmuthelmut2000:
Hallo Günni,

Wo setzt ich da den Farbwert?

Gruß
Helmut


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.

01.
<?php 
02.
if(isset($_POST['cmd'])){ 
03.
	$stueck = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_stueck'] : $_POST['txt_stueck']; 
04.
	$farbwert = $_POST['txt_stueck'] == $_POST['hidden_txt_stueck'] ? $_POST['hidden_txt_farbwert'] : $_POST['sel_farbwert']; 
05.
	$query='update tabelle set stueck = '.$stueck.', farbwert = '.$farbwert.' where id = 1'
06.
07.
echo $query
08.
?> 
09.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
10.
<html> 
11.
<head> 
12.
<title>Untitled</title> 
13.
</head> 
14.
<body> 
15.
<?php 
16.
/* 
17.
* Stückzahl aus einer Tabelle 
18.
*/ 
19.
$stueck=98; 
20.
/* 
21.
* Farbwert aus einer Tabelle 
22.
*/ 
23.
//$farbwert='white'
24.
?> 
25.
<form action="" method="post"
26.
<p>Stückzahl <input type="text" style="background-color: <?php echo $farbwert; ?>;"  name="txt_stueck" value="<?php echo $stueck  ?>" /></p> 
27.
<p><input type="hidden" name="hidden_txt_stueck"  value="<?php echo $stueck; ?>" /></p> 
28.
<p>Farbwert <select name="sel_farbwert"
29.
<option value="<?php echo $farbwert; ?>"> -- Farbwert wählen -- </option> 
30.
<option value="red">Rot</option> 
31.
<option value="lightgreen">Grün</option> 
32.
</select></p> 
33.
<p><input type="hidden" name="hidden_txt_farbwert"  value="<?php echo $farbwert; ?>" /></p> 
34.
<p><input type="submit" name="cmd" value="Edit" /></p> 
35.
</form> 
36.
</body> 
37.
</html>
Gruß
Günni
Bitte warten ..
Mitglied: helmuthelmut2000
03.03.2013 um 13:54 Uhr
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.
Bitte warten ..
Mitglied: Guenni
08.03.2013 um 23:39 Uhr
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.

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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Server
2012R2 All-in-One-Server kann keine Daten auf dem Desktop speichern (2)

Frage von Andre82ms zum Thema Windows Server ...

Windows Netzwerk
IIS - anderes Netz zulassen (3)

Frage von survial555 zum Thema Windows Netzwerk ...

Windows Server
AD-Berechtigungen von zwei Servern miteinander vergleichen (3)

Frage von s0m3ting zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...