Frage zu php Kann man Daten einer Datenbank in eine Art Eingabeformular einspielen, ändern und wieder zurückschreiben
Es geht um schnelle Aktualisierung für unsere Vereinshomepage
Hallo Forum,
da ich für unseren Verein die Homepage pflege, möchte ich mir die Arbeit so leicht wie möglich machen. Bisher ist sie komplett in HTML erstellt, ich will aber auf php wechseln. Das erste, was ich umsetzen will, ist die Ausgabe der Übungszeiten der einzelnen Abteilungen, die ich schon mal in eine MYSQL Datenbak eingepflegt habe. Die Ausgabe auf der Homepage sollte kein Problem darstellen.
Nun werden aber die Übungszeiten häufiger gewechselt. Um die AKtualisierung schneller hinzubekommen habe ich ein Idee, wobei ich nicht weiss, od das überhaupt geht. Deshalb meine Frage an Euch, ob meine Idee umsetzbar ist.
Ich will die Datenbank abfragen, die Ergebnisse aber in eine Art Formular einlesen, wo ich Änderungen durchführen kann, und diese dann zurück schreibe in die Datenbank. Mit Formularen habe ich schon gearbeitet und damit Daten in eine Datenbank bekommen.
Ich dachte mir mit "form action" ein Formular zu erstellen, mit <input name="Zeit" size="5" value="<$Datenbankfeld"); ?>"> die Daten in das Formular einzupflegen, dann zu ändern und die Änderung zurückzuschreiben.
Funktioniert das überhaupt?
Ich kanns natürlich auch auslesen, die ID des Datensatzes greifen, und mit einem Update Befehl die ID ändern. Aber über das Formular wäre es mir lieber, dann können die Abteilungsleiter das vielleicht auch alleine machen.
Jede Idee hilft.
Schöne Grüße
Christof
Hallo Forum,
da ich für unseren Verein die Homepage pflege, möchte ich mir die Arbeit so leicht wie möglich machen. Bisher ist sie komplett in HTML erstellt, ich will aber auf php wechseln. Das erste, was ich umsetzen will, ist die Ausgabe der Übungszeiten der einzelnen Abteilungen, die ich schon mal in eine MYSQL Datenbak eingepflegt habe. Die Ausgabe auf der Homepage sollte kein Problem darstellen.
Nun werden aber die Übungszeiten häufiger gewechselt. Um die AKtualisierung schneller hinzubekommen habe ich ein Idee, wobei ich nicht weiss, od das überhaupt geht. Deshalb meine Frage an Euch, ob meine Idee umsetzbar ist.
Ich will die Datenbank abfragen, die Ergebnisse aber in eine Art Formular einlesen, wo ich Änderungen durchführen kann, und diese dann zurück schreibe in die Datenbank. Mit Formularen habe ich schon gearbeitet und damit Daten in eine Datenbank bekommen.
Ich dachte mir mit "form action" ein Formular zu erstellen, mit <input name="Zeit" size="5" value="<$Datenbankfeld"); ?>"> die Daten in das Formular einzupflegen, dann zu ändern und die Änderung zurückzuschreiben.
Funktioniert das überhaupt?
Ich kanns natürlich auch auslesen, die ID des Datensatzes greifen, und mit einem Update Befehl die ID ändern. Aber über das Formular wäre es mir lieber, dann können die Abteilungsleiter das vielleicht auch alleine machen.
Jede Idee hilft.
Schöne Grüße
Christof
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 113119
Url: https://administrator.de/contentid/113119
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
23 Kommentare
Neuester Kommentar
ja - natürlich geht das... warum sollte es auch nicht...
ich mache das meistens so das ich alle datensätze auf einer seite ausgebe und hinter jedem Datensatz einen Radio-Button mit der ID mache. Unten dann ein "Change"-Button. Klickt man auf den Button wird der Eintrag mit der ID des Radio-Buttons ausgelesen und die Werte werden in die Input-Fields geladen. Ebenfalls gibts ein hidden-Feld in dem die ID fürs Update gespeichert wird.
Beim Senden wird es dann nen Update geben - Datensatz fertig...
ich mache das meistens so das ich alle datensätze auf einer seite ausgebe und hinter jedem Datensatz einen Radio-Button mit der ID mache. Unten dann ein "Change"-Button. Klickt man auf den Button wird der Eintrag mit der ID des Radio-Buttons ausgelesen und die Werte werden in die Input-Fields geladen. Ebenfalls gibts ein hidden-Feld in dem die ID fürs Update gespeichert wird.
Beim Senden wird es dann nen Update geben - Datensatz fertig...
Moin,
in der Datenbank habe ich immer ein Feld "id" - dieses ist als primary & autoincremant integer definiert. Damit ist diese ID IMMER eindeutig. Und somit kann ich ein Update auch immer an die ID hängen. Denn so habe ich am wenigsten Stress damit
Und ausserdem speichere ich auch immer wer einen Datensatz angelegt, geändert oder gelöscht hat -> so das ich notfalls auch Änderungen verfolgen kann...
Gruß
Mike
in der Datenbank habe ich immer ein Feld "id" - dieses ist als primary & autoincremant integer definiert. Damit ist diese ID IMMER eindeutig. Und somit kann ich ein Update auch immer an die ID hängen. Denn so habe ich am wenigsten Stress damit
Und ausserdem speichere ich auch immer wer einen Datensatz angelegt, geändert oder gelöscht hat -> so das ich notfalls auch Änderungen verfolgen kann...
Gruß
Mike
Hallo,
nachdem du gesagt hast du bereit bist zu lernen dann empfehle ich dir mal ein Tutorial zum durchackern dauert nicht lange.
Im Zuge des Tutorial lernst du wie man ein Gästebuch oder ein Newsscript zusammenbastelt.
Na gut habs grad nochmal angeschaut es is scho ein wenig mehr zum lesen aber sehr verständlich geschrieben.
Darin werden eigentlich so die Grundzüge im Umgang von php mit mysql und sonstigem gut erläutert.
http://tut.php-quake.net/de/
und was auch noch interressanter ist:
http://www.schattenbaum.net/php/
damit sind so die Anfängerfragen eigentlich größtenteils abgearbeitet.
nachdem du gesagt hast du bereit bist zu lernen dann empfehle ich dir mal ein Tutorial zum durchackern dauert nicht lange.
Im Zuge des Tutorial lernst du wie man ein Gästebuch oder ein Newsscript zusammenbastelt.
Na gut habs grad nochmal angeschaut es is scho ein wenig mehr zum lesen aber sehr verständlich geschrieben.
Darin werden eigentlich so die Grundzüge im Umgang von php mit mysql und sonstigem gut erläutert.
http://tut.php-quake.net/de/
und was auch noch interressanter ist:
http://www.schattenbaum.net/php/
damit sind so die Anfängerfragen eigentlich größtenteils abgearbeitet.
Also - du kannst es ganz einfach machen:
<input type="checkbox" name="meinname" value="ID-DES-DATENSATZES">
Man beachte die bei der Checkbox -> dieser Name isf für alle Checkboxen derselbe und ist ein Array (daher die zuatz-Klammern)
In deinem Quellcode gehst du jetzt einfach bei und machst
foreach ($_POST["meinname"] as $value) {
update_der_datenbank($value);
}
In $value steht jeweils die ID des Datensatzes drin der markiert wurde - und er geht das jetzt zeile für zeile durch...
<input type="checkbox" name="meinname" value="ID-DES-DATENSATZES">
Man beachte die bei der Checkbox -> dieser Name isf für alle Checkboxen derselbe und ist ein Array (daher die zuatz-Klammern)
In deinem Quellcode gehst du jetzt einfach bei und machst
foreach ($_POST["meinname"] as $value) {
update_der_datenbank($value);
}
In $value steht jeweils die ID des Datensatzes drin der markiert wurde - und er geht das jetzt zeile für zeile durch...
Ich verstehe grade ehrlich nicht wo das problem ist...
Du hast eine For-Schleife (oder eine andere Schleife) in der du deine Datenbank-Rückgaben bekommst - z.B.
while ($res = mysql_fetch_row()) {
...
}
Hier kannst du dann also deine Checkbox einfügen:
<input type.... name="derName" value="$row"....
Nehmen wir an das in $row die ID deines Datensatzes steht -> dann hast du jetzt also in $derName einen Array mit allen Datensatz-IDs.
Willst du jetzt also z.B. diese Datensätze löschen dann gilt:
foreach ($_POST["derName"] as $value) {
mysql_query("delete from xyz where id=$value");
}
Thema erledigt... Wie gesagt - ich weiss da wirklich nicht wo die Probleme sein können...
Du hast eine For-Schleife (oder eine andere Schleife) in der du deine Datenbank-Rückgaben bekommst - z.B.
while ($res = mysql_fetch_row()) {
...
}
Hier kannst du dann also deine Checkbox einfügen:
<input type.... name="derName" value="$row"....
Nehmen wir an das in $row die ID deines Datensatzes steht -> dann hast du jetzt also in $derName einen Array mit allen Datensatz-IDs.
Willst du jetzt also z.B. diese Datensätze löschen dann gilt:
foreach ($_POST["derName"] as $value) {
mysql_query("delete from xyz where id=$value");
}
Thema erledigt... Wie gesagt - ich weiss da wirklich nicht wo die Probleme sein können...
Moin,
zuerst solltest du in while ($array...) deine Variable nicht grade Array nennen... Dies ist ein Schlüsselwort -> und kann schonmal zu Verwirrungen &/ Fehlern führen...
<--- qoute --->
<td><input name="id" size="2" value="<?= $array; ?>"</td>
12.
<td><input name="tag" size="50" value="<?= $array[1]; ?>"></td>
<---- /qoute --->
Hier fehlt der input-type komplett!
Deine Aktuallsierung kann nicht klappen -> da du zwar das Feld markierst, aber jedes "Eingabefeld" den Namen z.B. "art" hat. Damit überschreibst du selbst deine Eingabewerte! Es ist dem Formular prinzipiell egal welcher Haken gesetzt ist - alle Felder in einer Spalte heissen z.B. "<input type="text" name="art" ...> -> und somit nimmt der halt das erste oder letzte ...
Du musst deinen Feldern entweder im Namen auch die ID mitgeben (wie du das machst darfst du selbst rausfinden -> als Hinweis: art_7, art_5 für die Daten mit der ID 7 oder 5 und danach mal mit preg_split beim Speichern die Daten Variablennamen auseinandernehmen) oder du musst erst den Datensatz laden lassen und dann hast du nur eine Eingabezeile (d.h. Schritt 1: User wählt den zu ändernden Datensatz aus, klickt auf "Change". Schritt 2: Daten werden in die Eingabezeile geladen und werden geändert. User klickt auf "Senden". Schritt 3: Daten werden in der Datenbank aktuallisiert).
zuerst solltest du in while ($array...) deine Variable nicht grade Array nennen... Dies ist ein Schlüsselwort -> und kann schonmal zu Verwirrungen &/ Fehlern führen...
<--- qoute --->
<td><input name="id" size="2" value="<?= $array; ?>"</td>
12.
<td><input name="tag" size="50" value="<?= $array[1]; ?>"></td>
<---- /qoute --->
Hier fehlt der input-type komplett!
Deine Aktuallsierung kann nicht klappen -> da du zwar das Feld markierst, aber jedes "Eingabefeld" den Namen z.B. "art" hat. Damit überschreibst du selbst deine Eingabewerte! Es ist dem Formular prinzipiell egal welcher Haken gesetzt ist - alle Felder in einer Spalte heissen z.B. "<input type="text" name="art" ...> -> und somit nimmt der halt das erste oder letzte ...
Du musst deinen Feldern entweder im Namen auch die ID mitgeben (wie du das machst darfst du selbst rausfinden -> als Hinweis: art_7, art_5 für die Daten mit der ID 7 oder 5 und danach mal mit preg_split beim Speichern die Daten Variablennamen auseinandernehmen) oder du musst erst den Datensatz laden lassen und dann hast du nur eine Eingabezeile (d.h. Schritt 1: User wählt den zu ändernden Datensatz aus, klickt auf "Change". Schritt 2: Daten werden in die Eingabezeile geladen und werden geändert. User klickt auf "Senden". Schritt 3: Daten werden in der Datenbank aktuallisiert).
Moin,
dann mache ich dir schonmal einen Vorschlag: Lade den Quelltext als *.txt-Datei auf den Webserver, dann kann ich sicher auch mal reingucken und das gesamte sehen... Problem an der Sache ist ganz einfach: Ich kann mir auch nicht merken was genau du jetzt in welcher Version eingebaut hast -> da ich selbst auch noch einiges an Programmierungen erledigen muss (ich baue grade das Intranet für unsere Firma).
Gegen Anfänger gibt es ja generell nichts zu sagen - allerdings musst du auch gleichzeitig immer sehen das du selbst überlegen musst... Ich denke die meisten hier können dir eine solch relativ einfache Aufgabe innerhalb von max. 3-4 Std. bauen - nur es hilft dir eben nicht wenn du ne komplett fertige Lösung hier vorgelegt bekommst...
Gruß
Mike
dann mache ich dir schonmal einen Vorschlag: Lade den Quelltext als *.txt-Datei auf den Webserver, dann kann ich sicher auch mal reingucken und das gesamte sehen... Problem an der Sache ist ganz einfach: Ich kann mir auch nicht merken was genau du jetzt in welcher Version eingebaut hast -> da ich selbst auch noch einiges an Programmierungen erledigen muss (ich baue grade das Intranet für unsere Firma).
Gegen Anfänger gibt es ja generell nichts zu sagen - allerdings musst du auch gleichzeitig immer sehen das du selbst überlegen musst... Ich denke die meisten hier können dir eine solch relativ einfache Aufgabe innerhalb von max. 3-4 Std. bauen - nur es hilft dir eben nicht wenn du ne komplett fertige Lösung hier vorgelegt bekommst...
Gruß
Mike
Moin,
also - was mir da zu Anfang (im Firefox) grad auffällt: Mache bitte die richtigen Umlaute oder ein entsprechendes Encoding... Ich würde allerdings die richtigen Umlaute bevorzugen (ä = ä, Ä = Ä ...)
Weiterhin: Ich würde den Radio-Button mit in die Tabelle nehmen - und das ganze als 1 Tabelle machen... Sieht optisch schöner aus und man weiss genau welcher Radio-Button zu welchem Datensatz gehört. Ebenfalls kann man die Eingabe-Zeile dann in die Tabelle packen...
Du kommst aus dem Raum "Winsen"? - ist das Winsen/Luhe? ;) Da war ich grad am WE mitn Mopped ;)
also - was mir da zu Anfang (im Firefox) grad auffällt: Mache bitte die richtigen Umlaute oder ein entsprechendes Encoding... Ich würde allerdings die richtigen Umlaute bevorzugen (ä = ä, Ä = Ä ...)
Weiterhin: Ich würde den Radio-Button mit in die Tabelle nehmen - und das ganze als 1 Tabelle machen... Sieht optisch schöner aus und man weiss genau welcher Radio-Button zu welchem Datensatz gehört. Ebenfalls kann man die Eingabe-Zeile dann in die Tabelle packen...
Du kommst aus dem Raum "Winsen"? - ist das Winsen/Luhe? ;) Da war ich grad am WE mitn Mopped ;)
Etwas was mir gerade aufgefallen ist, die Verwendung von sog. ShortOpenTags ( <?= ) kann bei manchen Servern zu Problemen fürhen.
Wenn ichs richtig in Errinerung habe ist die Default Einstellung von PHP sogar short_open_tags = off
Nur so falls mal in Probleme geratest und nicht mehr weist warum dein Script nix macht.
grüße
Wenn ichs richtig in Errinerung habe ist die Default Einstellung von PHP sogar short_open_tags = off
Nur so falls mal in Probleme geratest und nicht mehr weist warum dein Script nix macht.
grüße