• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Daten aus der Datenbank in Formular füllen

jive

Neues Mitglied
Hallo,

wie schon der Thread titel aussagt will ich wissen wie man eingelesene Daten von einem Formular in die mysql Datenbank wieder zurück in das Formular lädt um sie nachträglich zu bearbeiten.

Mfg Michael
 
Werbung:
Ich hatte was im Sinn wie zum Beispiel :

SELECT .... from .... WHERE (um die Spalten des Formulars auszuwählen)

Danach wollte ich irgendwie die Daten wieder auf die Formularfelder verteilen.

Und dann sollte der User die Felder wieder ändern können.

Und dann danach irgenwas wie :

UPDATE ... from. ... WHERE
 
Werbung:
mich hat das nur irritiert das so eine ungenaue antwort kam weil ich damit nichts anfangen konnte.
aber das is schon näher an dem was ich dachte ^^
 
Werbung:
mich hat das nur irritiert das so eine ungenaue antwort kam weil ich damit nichts anfangen konnte.
aber das is schon näher an dem was ich dachte ^^
Du hast eine sehr ungenaue Frage gestelt, auf die ich absolut präzise geantwortet habe. Du kannst das was du beschreibst mit jeder beliebigen Serverseitigen Sprache machen, was ist denn genau dein Problem? Und in welcher Sprache willst du das umsetzen?
 
Also ich hab ein Formular in html entworfen. Die dort eingetragenen Daten werden an die mysql Datenbank übergeben und dort gespeichert. Nun will ich das die Daten durch das klicken auf den ändern button wieder abgerufen werden und Automatisch ins Formular und in die jeweilige Spalte eingetragen werden. also ich will es mit php machen!
 
Dann holst du die Benötigten Daten zum Beispiel über die id deines Eintrages. Du musst erst einmal wissen welchen Eintrag du bearbeiten willst. Am besten macht man so etwas in dem man einen Link erstellt der dann zum beispiel so aussieht:
seite.php?action=edit&id=1
Wenn du auf dem Link klickst, gelangst du zu seite.php.
Auf dieser Seite musst du prüfen: Will ich etwas neu anlegen oder bearbeiten?
Erkennst es ja an der Action.
Dann holst mit der mitgegeben id den Eintrag aus der Datenbank. Und kannst dann das Formular erstellen lassen. Als Value wählst du dann die Daten aus der DB. zusätzlich solltest du noch ein hidden Field befüllen lassen was zum Beispiel action heissen kann. Der value dieses Feldes könnte dann zum Beispiel update heißen. Desweiteren müsstest du noch ein Feld für die Id machen, damit du im nächsten Schritt weisst welcher Datensatz aktualisiert werden soll. Dann hast du alle Daten und weisst anhand der Action, dass ein Feld bearbeitet werden soll. Das Id Feld würde auch reichen, wenn du fragst: Ist eine Id mitgegeben worden? Wenn ja dann updaten. Hoffe die beschreibung eines möglichen Vorgangs konnte dir helfen :)
 
Werbung:
Iss natürlich nicht ungefährlich, da über die Get-Variable
seite.php?action=edit&id=1
jeder sehen kann, mit welcher action ich welche id verändern kann. wäre da nicht post besser, ist zwar auch nicht der sicherheit letzter schluss, aber man muss sich mehr anstrengen...
 
mh ja also so in der Art habe ich das auch gelöst ich hab die Id genommen und die übergegeben und danach bin ich dann mit dem Befehl UPDATE ran und wollte die neu eingegeben Daten erneuern. Hat aber irgendwie nicht so ganz funktioniert. Ich hab nämlich die Id schon vorher auf einer anderen Seite deklariert und weiß nicht wie ich diese im Formular zwischenspeichern kann um sie dann wiederum durch action an die nächste seite zu übergeben.
 
Mit einem versteckten Eingabefeld zum Beispiel. Pseudocode:

Code:
<input name="id" type="hidden" value="$id">

muhl schrieb:
wäre da nicht post besser, ist zwar auch nicht der sicherheit letzter schluss, aber man muss sich mehr anstrengen...

POST-Requests sind so schwer zu verlinken.

Okay, ernsthaft: Stünde da "action=delete", würde ich dir Recht geben. "action=edit" ist jedoch "idempotent", da der Vorgang lediglich Daten abruft und auch bei jedem erneuten Aufruf dasselbe Resultat liefert.

Gibt ein paar Richtlinien dazu:

- Hypertext Transfer Protocol - Wikipedia, the free encyclopedia
- HTTP/1.1: Method Definitions

Es ist aber "weniger falsch", POST statt GET zu verwenden als GET statt POST. Nur eben im Zweifel unüblich.

Edit: Was die Sicherheit angeht... Hm. Würde ich in dem Fall als trivial abtun, glaube ich. Auch wenn's manchmal helfen mag. Dann wäre die Anwendung aber ohnehin unsicher gestaltet. (Und der Angreifer dumm. ;))
 
Zuletzt bearbeitet:
Werbung:
Die Variable die die ID beinhaltet stammt aus einem php code. Ist das egal oder muss ich sie zum abfangen in dem Formular in ein php tag schreiben?
 
Ja, musst du.

PHP:
<input name="id" type="hidden" value="<?php echo (int) $id; ?>">

Und dazu eigentlich noch escapen. (Habe das jetzt schnell mit Typecast auf Integer gesichert.)
 
ah ok danke. Nur da wär noch eine Frage. Wie kann ich die von der Datenbank abgerufenen Daten auf die text Felder verteilen? Vorher wurde ja schon gesagt ich müsste das mit values machen nur ich hab den Inhalt der Datenbank ja in einer Variable. Wie lese ich die aus und teile sie auf?
 
Werbung:
Hört sich nach grundsätzlichen Fragen an.
Gibt mehrere Möglichkeiten, eine einfach wäre:
mysql_query("select vorname, nachname from t_tabelle where id = '$id'") or die (mysql_error());
Damit rufst du beispielsweise den vornamen und nachnamen von der übergebenen id ab.
Wenn die id über get mitgeteilt wird, dann einfach $id=$_GET["id"];
jetzt hast du erstmal einen datensatz abgefragt, den musst aber noch übernehmen und aufarbeiten.
$datenalsobjekt = mysql_fetch_object($mysql_query);
Jetzt kannst du die Daten einzeln aus dem Ergebnis abfragen.
$vorname=$datenalsobjekt->vorname;
$nachname=$datenalsobjekt->nachname;
Vorausgesetzt, die Feldnamen heißen auch wirklich so, das ist wichtig!
Jetzt kommt dein Formular ins Spiel.
<input type="irgendwas" value="$vorname" name="irgendwas">
Dann stehen die Werte im Formular drin.

So long alles klar? Und lass dich nicht von meiner Paralleldiskussion mit Sicherheit ablenken, mermshaus hat da Recht, ist in diesem Fall völlig egal.

Gruß,

Maik
 
Zurück
Oben