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
GELÖST

Frage zu php Kann man Daten einer Datenbank in eine Art Eingabeformular einspielen, ändern und wieder zurückschreiben

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

02.04.2009, aktualisiert 11.04.2009, 7268 Aufrufe, 23 Kommentare

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
Mitglied: maretz
02.04.2009 um 18:39 Uhr
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...
Bitte warten ..
Mitglied: godlie
02.04.2009 um 19:10 Uhr
Du kannst so ziemlich alles machen mit php.
Aber warum das Rad neu erfinden ( auser es interessiert dich so dermasen ).

Nimm wordpress her, da hast alles scho drinne kostet nix und kann verdammt viel.
Bitte warten ..
Mitglied: gechger
03.04.2009 um 19:07 Uhr
Hi Godlie,

sicher kann man Tools verwenden, aber ich nutze jede Herausforderung, um mich schlauer zu machen. Alles was ich selber (oder mit Hilfe) lösen kann, erhöht mein Wissen. Deshalb möchte ich keine Tools nutzen.

Habe auch schon alle Datensätze sauber in einem Formular stehen und überlege mir gerade, wie ich Änderungen jetzt zurück schreiben kann.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
03.04.2009 um 19:09 Uhr
Hi Maretz,

der Ansatz hört sich interessant an. Du steuerst also alles über die ID? Heisst daß das nur gewählte IDs ein Update der Datensätze bekommen?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: maretz
03.04.2009 um 19:26 Uhr
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
Bitte warten ..
Mitglied: gechger
03.04.2009 um 22:19 Uhr
Hi Mike,

soweit bin ich noch nicht. Mir reicht es vorläufig herauszufinden, wie ich die Änderungen durchführen kann. Wenn das reibungslos läuft, gehe ich den nächsten Schritt an.
Werde mich also demnächst auf die Suche machen, um heraus zu finden, wie ich sinnvoll gefüllte Checkboxen abfragen kann, um entsprechende Daten in die Datenbank zurück zu schreiben.

Danke erstmal für Deine Anregungen
Schöne Grüße
Christof

PS: diese ID habe ich auch so eingerichtet. Irgendwas eindeutiges muß man ja haben....
Bitte warten ..
Mitglied: gechger
04.04.2009 um 11:03 Uhr
Hallo Mike,

nun komme ich doch nicht weiter.
Mittlerweile habe ich sämtliche Einträge meiner Übungszeiten Datenbank in ein Eingabeformular eingelesen. Link zur Seite ist noch nicht sauber formatiert, liefert aber schon mal Ergebnisse.
Es gelingt mir jetzt nicht, mehrere Checkboxen zu markieren und nur die gewählten Einträge in ein Array zu schreiben, damit diese dann mit einem Update in die Datenbank zurückgeschrieben werden können.

01.
<body> 
02.
<body bgcolor="#ffffff" text="#111111"
03.
<font face="Verdana, Arial, Tahoma, Sans Serif"
04.
 
05.
<font size="3"
06.
 
07.
<?php 
08.
error_reporting(E_ALL); #zeig alle Fehler 
09.
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
10.
 
11.
  //Verbindung zur Datenbank herstellen 
12.
 
13.
$link = mysql_connect("XXXXXXX.de", "XXXXXXX", "XXXXX"); 
14.
mysql_select_db("DBXXXXX",$link) or die ("die Verbindungsaufnahme ist gescheitert!"); 
15.
 
16.
$sql=("SELECT * FROM XXXXXXX LIMIT 0,5"); 
17.
$abfrage = mysql_db_query('DBXXXXX',$sql); 
18.
//print_r ($abfrage); 
19.
//echo "$abfrage"
20.
 
21.
?> 
22.
<form action="tage.php" method="post"
23.
  <input type="submit" value="Absenden"
24.
<? 
25.
 
26.
 
27.
while($array = mysql_fetch_row($abfrage)){ 
28.
?> 
29.
 
30.
 
31.
 
32.
  <table> 
33.
 
34.
 <tr> 
35.
<td><input type="checkbox" name="neu" value="1"> zur Aktualisierung markieren!<br></td> 
36.
<td><input name="id" size="2"  value="<?= $array[0]; ?>"></td> 
37.
<td><input name="tag" size="50"  value="<?= $array[1]; ?>"></td> 
38.
</tr> 
39.
</table> 
40.
<table> 
41.
<tr> 
42.
<td><input name="zeitvon" size="5"  value="<?= $array[2]; ?>"></td> 
43.
<td><input name="zeitbis" size="5" value="<?= $array[3]; ?>"></td> 
44.
<td><input name="art" size="50"  value="<?= $array[4]; ?>"></td> 
45.
<td><input name="ort" size="50"  value="<?= $array[5]; ?>"></td> 
46.
<td><input name="sparte" size="20"  value="<?= $array[6]; ?>"></td> 
47.
<td><input name="leitung" size="30"  value="<?= $array[7]; ?>"></td> 
48.
</tr> 
49.
</table> 
50.
 
51.
</form> 
52.
 
53.
<? 
54.
 
55.
 
56.
if (isset($_POST["neu"])){ 
57.
echo "Checkbox geklickt","<br>"
58.
	$id=$_POST["id"]; 
59.
         $tag=$_POST["tag"]; 
60.
         $zeitvon=$_POST["zeitvon"]; 
61.
         $zeitbis=$_POST["zeitbis"]; 
62.
         $art=$_POST["art"]; 
63.
         $ort=$_POST["ort"]; 
64.
         $sparte=$_POST["sparte"]; 
65.
         $leitung=$_POST["leitung"]; 
66.
	$neu="$id"."|"."$tag"."|"."$zeitvon"."|"."$zeitbis"."|"."$art"."|"."$ort"."|"."$sparte"."|"."$leitung"
67.
                     echo "$neu","<br>"
68.
69.
 } // ENDE while($array = mysql_fetch_array($abfrage)){ 
70.
  ?> 
71.
 
72.
 
73.
 
74.
</p> 
75.
</font> 
76.
</body>
Nur wenn ich den ersten Eintrag anklicke, kommt überhaupt etwas. Dieser Eintrag steht dann aber auch in jeder Zeile. Wie es aussieht, werden weitere Checkboxen überhaupt nicht angefasst.

Ich vermute mal, da die Eingabefelder durch eine Schleife aufgebaut werden, und jede Checkbox deshalb den selben Namen trägt, bekomme ich keine sauberen Ergebnisse.
Wie gehe ich sinnvoll vor, um wirklich alle markierten Checkboxen zu aktualisieren?

Vielen Dank für jeden Tip.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: godlie
04.04.2009 um 15:07 Uhr
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.
Bitte warten ..
Mitglied: gechger
04.04.2009 um 23:00 Uhr
Hi Godlie,

diese Tutorials habe ich schon durchgeackert und sie haben wirklich viel Wissen vermittelt. Aber in allen Tutorials, in denen ich war, wird darauf hingewiesen, daß man für jede Checkbox eine eigene Definitiopn bräuchte:
z.Bsp. <label><input type="radio" name="Size" value="20" /> Klein</label>

Bei meinem Ziel weiss ich vorher nicht, wieviele Checkboxen es werden, die Einträge der ausgelesenen Datenbank können variabel sein. Ich suche also eine Definition der Checkboxen, wo bei jedem Durchlauf geprüft wird, ob eine Checkbox gefüllt ist, und die dazu gehörenden gefundenen Werte in ein Array schreibt. Bisher bekomme ich immer nur den ersten Wert der Datenbak ausgegeben, alle weiteren werden ignoriert.

Mittlerweile versuche ich eindeutige Checkbox Definitionen auf diese Art zu erhalte:
01.
$count="0"
02.
$wert="0"
03.
 
04.
while($array = mysql_fetch_row($abfrage)){ 
05.
      $name=$count++; 
06.
      $value=$wert++; 
07.
 
08.
?> 
09.
 
10.
<table> 
11.
 
12.
<tr> 
13.
<td><input type="checkbox" name="<?= $name;?>"  value="<?= $value;?>"> zur Aktualisierung markieren !<br></td>
Ich erhalte bei jedem Schleifendurchlauf auch schön aktualisierte Werte, aber in der Ausgabe immer nur den ersten Satz der Datenbank, wenn er markiert ist, ansonsten nichts.

Diesen Knoten im Gehirn will ich lösen

Habe Deine Links auf jeden Fall mal als Favorit gespeichert.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: maretz
05.04.2009 um 07:53 Uhr
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...
Bitte warten ..
Mitglied: gechger
06.04.2009 um 17:36 Uhr
Hallo Mike,

in Tutorials habe ich diesen Befehl auch schon gefunden, aber übereinstimmend wurde dort für jede Checkbox eine eigene Zeile definiert, z.Bsp. bei http://aktuell.de.selfhtml.org/artikel/php/checkboxen/

01.
 <form action="checkbox.php"
02.
 <input type="hidden" name="sent" value="yes"
03.
 <input type="text" name="auto"><br> 
04.
 <input type="checkbox" name="ausstattung[]" value="Sumpfgaseinspritzung">&nbsp;Sumpfgaseinspritzung<br> 
05.
 <input type="checkbox" name="ausstattung[]" value="drei Ersatzreifen">&nbsp;drei Ersatzreifen<br> 
06.
 <input type="checkbox" name="ausstattung[]" value="Schminkspiegel im Kofferraum">&nbsp;Schminkspiegel im Kofferraum<br> 
07.
 <input type="checkbox" name="ausstattung[]" value="Kniescheibenbelüftung">&nbsp;Kniescheibenbelüftung<br> 
08.
 <input type="checkbox" name="ausstattung[]" value="James-Bond Paket">&nbsp;James-Bond Paket<br> 
09.
 <input type="submit"
10.
 </form>
Da ich aber bei Auslesen der Datenbank nicht weiss, wieviele Datensätze es aktuell sind, kann ich auch nicht eine entsprechende Anzahl Checkboxen vor definieren. Wenn ich nur eine Zeile definiere, bekomme ich wohl auch nur den ersten Datensatz ausgegeben.
Das muß ich also irgendwie anders lösen.

Aber schönen Dank für Deine Hilfe.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: maretz
06.04.2009 um 17:59 Uhr
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[0]"....

Nehmen wir an das in $row[0] 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...
Bitte warten ..
Mitglied: gechger
06.04.2009 um 23:00 Uhr
Zitat von maretz:
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()) {
stimmt, habe ich..

...
}

Hier kannst du dann also deine Checkbox einfügen:
<input type.... name="derName[]"
value="$row[0]"....

habe ich auch....

Nehmen wir an das in $row[0] die ID deines Datensatzes steht ->
dann hast du jetzt also in $derName[] einen Array mit allen
Datensatz-IDs.

und genau dies habe ich nicht, und weiss nicht warum. Ich habe immer nur den ersten Datensatz aus der Ausgabe, wenn ich die 1. Checkbox anklicke, und ausschließlich den ersten Datensatz. Wenn ich andere Checkboxen anklicke, habe ich gar nichts. Es scheint alles logisch, aber irgendwo steckt der Wurm, den ich nicht finde. Bevor ich eine Änderung der Datenbank einrichte, will ich ja wisssen, wie die Daten überhaupt aussehen. Ist meine Abfrage vielleicht verkehrt?


01.
while($array = mysql_fetch_row($abfrage)){ 
02.
 
03.
?> 
04.
 
05.
<table> 
06.
 
07.
<tr> 
08.
<td><input type="checkbox" name="checkbox[]"  value="<?= $array[0]; ?>" zur Aktualisierung markieren !<br></td> 
09.
 
10.
 
11.
<td><input name="id" size="2"  value="<?= $array[0]; ?>"</td> 
12.
<td><input name="tag" size="50"  value="<?= $array[1]; ?>"></td> 
13.
</tr> 
14.
</table> 
15.
<table> 
16.
<tr> 
17.
 
18.
<td><input name="zeitvon" size="5"  value="<?= $array[2]; ?>"></td> 
19.
<td><input name="zeitbis" size="5" value="<?= $array[3]; ?>"></td> 
20.
<td><input name="art" size="50"  value="<?= $array[4]; ?>"></td> 
21.
<td><input name="ort" size="50"  value="<?= $array[5]; ?>"></td> 
22.
<td><input name="sparte" size="20"  value="<?= $array[6]; ?>"></td> 
23.
<td><input name="leitung" size="30"  value="<?= $array[7]; ?>"></td> 
24.
</tr> 
25.
</table> 
26.
 
27.
</form> 
28.
 
29.
<? 
30.
 
31.
if (isset($_POST["checkbox"])) 
32.
33.
foreach ($_POST["checkbox"] as $value) { 
34.
	//update_der_datenbank($value); 
35.
         //echo $_POST["checkbox"],"<br>"
36.
         print_r($value); 
37.
echo "Checkbox geklickt","<br>"
38.
	$id=$_POST["id"]; 
39.
         $tag=$_POST["tag"]; 
40.
         $zeitvon=$_POST["zeitvon"]; 
41.
         $zeitbis=$_POST["zeitbis"]; 
42.
         $art=$_POST["art"]; 
43.
         $ort=$_POST["ort"]; 
44.
         $sparte=$_POST["sparte"]; 
45.
         $leitung=$_POST["leitung"]; 
46.
         $neu=$id.$tag.$zeitvon.$zeitbis.$art.$ort.$sparte.$leitung
47.
         echo $neu
48.
 
49.
50.
 
51.
 
52.
53.
 
54.
55.
 
56.
  ?> 
57.
 
58.
 
59.
 
60.
</p> 
61.
</font> 
62.
</body> 
63.
</html>
So teste ich gerade das Script, vielleicht ist ja alles da, aber es wird nur nicht angezeigt?

Erste Checkbox angeklickt, kommt dieses hier:

1Checkbox geklickt
1Montag ständige Übungsgruppen16:0017:00 Eltern-Kind-TurnenTurnhalle HauptschuleTurnenLeitung: Stefanie Brückner Tel: 2893

1Checkbox geklickt
1Montag ständige Übungsgruppen16:0017:00 Eltern-Kind-TurnenTurnhalle HauptschuleTurnenLeitung: Stefanie Brückner Tel: 2893

1Checkbox geklickt
1Montag ständige Übungsgruppen16:0017:00 Eltern-Kind-TurnenTurnhalle HauptschuleTurnenLeitung: Stefanie Brückner Tel: 2893

1Checkbox geklickt
1Montag ständige Übungsgruppen16:0017:00 Eltern-Kind-TurnenTurnhalle HauptschuleTurnenLeitung: Stefanie Brückner Tel: 2893

1Checkbox geklickt
1Montag ständige Übungsgruppen16:0017:00 Eltern-Kind-TurnenTurnhalle HauptschuleTurnenLeitung: Stefanie Brückner Tel: 2893

Andere (als die erste) Checkbox angeklickt kommt gar nichts. Irgendwie bleibe ich immer beim ersten Datensatz hängen.

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...

Ja, das ich das Problem nicht finde, ist das Problem
Das muß etwas ganz banales sein, daß ich hier übersehe.
Bitte warten ..
Mitglied: maretz
07.04.2009 um 07:18 Uhr
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[0]; ?>"</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).
Bitte warten ..
Mitglied: gechger
07.04.2009 um 21:17 Uhr
Moin Mike,

ich sehe schon, für eine Newbee in php habe ich mir zuviel vorgenommen. Ich denke, die aufgezeigte Variante ist einfacher umzusetzen. Habe jetzt versucht, alles zu berücksichtigen, was Du mir geschrieben hast, aber ich bekomme trotzdem immer nur einen markierten Datensatz ausgegeben, zwar jetzt auch Andere als nur den Ersten, aber trotzdem nicht so, wie ich es mir vorgestellt hatte.

Bei den ganzen Versuchen blicke ich jetzt selbst nicht mehr durch mein Script durch.
Also fange ich noch mal an mit einem anderen Ansatz (Schritt 1,2,3)

Ich danke Dir vielmals, daß Du soviel Geduld hattest mit mir.

Ich komme bestimmt auf diese Lösungansätze zurück, wenn ich etwas mehr Erfahrung gesammelt habe.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: maretz
07.04.2009 um 23:05 Uhr
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
Bitte warten ..
Mitglied: gechger
09.04.2009 um 14:49 Uhr
Stimmt Mike,

zwar habe ich schon einige Scripts geschrieben, viel mit Hilfe dieses Forums. Aber nie ein fertiges Script haben wollen. Lernen tut man nur, indem man es selber macht, und dann Tipps bekommt, wie man weiter kommt. Dank Deiner Hilfe habe ich nun schon ein brauchbares Ergebnis. So siehts aus:

Mein bisheriges Script


So sieht es jetzt aus:
01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
02.
 
03.
<html> 
04.
<head> 
05.
<title>www.mtv-fichte.de</title> 
06.
        <meta http-equiv="expires" content="0"
07.
        <meta name="author" content="Christof Gersky"
08.
        <meta name="Keywords" content="Winsen Aller, Sport, Badminton, Gesundheit, Handball, Rock, Roll, Jazz Dance, Schach, Tae Kwon Do, Tischtennis, Turnen, Ger&auml;tturnen "
09.
        <style type="text/css"></style> 
10.
        </head> 
11.
 
12.
 
13.
<body> 
14.
<body bgcolor="#ffffff" text="#111111"
15.
<font face="Verdana, Arial, Tahoma, Sans Serif"
16.
 
17.
<font size="2"
18.
<font color="#291455"
19.
 
20.
<?php 
21.
error_reporting(E_ALL); #zeig alle Fehler 
22.
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
23.
 
24.
  //Verbindung zur Datenbank herstellen 
25.
 
26.
$link = mysql_connect("XXXXXXX", "XXXXXXX", "XXXXXX"); 
27.
mysql_select_db("XXXXXXX",$link) or die ("die Verbindungsaufnahme ist gescheitert!"); 
28.
 
29.
$sql=("SELECT * FROM mtv_zeiten LIMIT 0,60"); 
30.
$abfrage = mysql_db_query('XXXXXXX',$sql); 
31.
 
32.
?> 
33.
 
34.
  <? 
35.
  while($daten = mysql_fetch_row($abfrage)){ 
36.
  ?> 
37.
 
38.
 <? 
39.
 $id=$daten[0]-1; 
40.
 //echo "ID = $id","<br>"
41.
  $arr[]=($daten[1]."\t".$daten[2]."\t".$daten[3]."\t".$daten[4]."\t".$daten[5]."\t".$daten[6]."\t".$daten[7]); 
42.
  //$id=$daten[0]; 
43.
  $tag=$daten[1]; 
44.
  $zeitvon=$daten[2]; 
45.
  $zeitbis=$daten[3]; 
46.
  $art=$daten[4]; 
47.
  $ort=$daten[5]; 
48.
  $abteilung=$daten[6]; 
49.
  $leitung=$daten[7]; 
50.
 
51.
 ?> 
52.
 
53.
 
54.
 
55.
 <table border="1" bgcolor="#CCCCFF"
56.
  <tr  > 
57.
  <td width="100%" ><?echo $tag; ?></td> 
58.
  </tr> 
59.
  <tr> 
60.
  <td  ><?echo $zeitvon."-".$zeitbis."| |".$art."| |".$ort."| |".$abteilung."| |".$leitung ?></td> 
61.
  </tr> 
62.
  </table> 
63.
  <br> 
64.
  <table> 
65.
  <form action="zeitaktual.php" method="post"
66.
  <tr> 
67.
  <td> 
68.
  <input type="radio" name="auswahl<?= $id; ?>" value="0">Datensatz hier markieren zum Ändern<br> 
69.
  </td> 
70.
  </tr> 
71.
  </table> 
72.
 
73.
  <br> 
74.
 
75.
 <? if(isset($_POST["auswahl$id"])){ 
76.
 
77.
 ?> 
78.
    <table > 
79.
 <form action="zeitaktual.php" method="post"
80.
  <tr align="left" valign="bottom" bgcolor="#FF0000"
81.
  <td  ><input type="text" name="a_id"  value="<?= $id; ?>" size="2"></td> 
82.
  <td ><input type="text" name="a_tag"  value="<?= $tag; ?>" size="50"></td> 
83.
  </tr> 
84.
  </table> 
85.
  <table> 
86.
  <form action="zeitaktual.php" method="post"
87.
  <tr align="left" valign="bottom" bgcolor="#FF0000"
88.
  <td  ><input type="text" name="a_zeitvon"  value="<?= $zeitvon; ?>" size="6"></td> 
89.
  <td  ><input type="text" name="a_zeitbis"  value="<?= $zeitbis; ?>" size="6"></td> 
90.
  <td  ><input type="text" name="a_art"  value="<?= $art; ?>" size="50" ></td> 
91.
  <td  ><input type="text" name="a_ort"  value="<?= $ort; ?>" size="25"></td> 
92.
  <td  ><input type="text" name="a_abteilung"  value="<?= $abteilung; ?>" size="25"></td> 
93.
  <td  ><input type="text" name="a_leitung"  value="<?= $leitung; ?>" size="50"></td> 
94.
  </tr> 
95.
  </table> 
96.
 
97.
 
98.
  <br> 
99.
 <? 
100.
 
101.
102.
103.
?> 
104.
  <table> 
105.
  <form action="zeitaktual.php" method="post"
106.
  <tr> 
107.
  <td> 
108.
  <input type="submit" value="Zum Ändern bitte klicken"><br> 
109.
  </td> 
110.
 
111.
  </tr> 
112.
  </table> 
113.
  <br> 
114.
  <? 
115.
 echo ($_POST["a_zeitvon"])."|".($_POST["a_zeitbis"])."|".($_POST["a_art"])."|".($_POST["a_ort"])."|".($_POST["a_abteilung"])."|".($_POST["a_leitung"]); 
116.
 
117.
 
118.
 
119.
  //} // ENDE while($array = mysql_fetch_array($abfrage)){ 
120.
  ?> 
121.
 
122.
 
123.
 
124.
 
125.
</form> 
126.
</font> 
127.
</body> 
128.
</html>
Ich gebe erst die Information in einer Tabelle aus. Wenn ein Radiobutton gedrückt wird, erstelle ich ein Eingabeformular zu diesem Datensatz, wo die Änderungen eingetragen weren. Diese Werte schreibe ich zunächst als ECHO weg, zur Kontrolle.

Was ich jetzt noch lösen will, ist eine Selektion der ausgegebenen Daten. Die Abteilung Tischtennis soll zur Änderung auch nur die Tischtennis-Zeiten sehen, Dafür will ich zu Beginn ein Auswahlfeld anbieten. Wenn das alles klappt, brauche ich die Daten nur noch mit einem kleinen SQL-Update Befehl in die Datenbank zurückschreiben. Das kommt aber erst später.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: maretz
09.04.2009 um 15:28 Uhr
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 (ä = &auml;, Ä = &Auml; ...)

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 ;)
Bitte warten ..
Mitglied: gechger
09.04.2009 um 15:48 Uhr
Moin,

nein, ist Winsen / Aller im Kreis Celle.
Deinen Vorschlag werde ich noch berücksichtigen. Bin gerade an der Auswahlliste, um nicht soviele Datensätze zu sehen.
Bitte warten ..
Mitglied: godlie
10.04.2009 um 15:01 Uhr
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
Bitte warten ..
Mitglied: gechger
10.04.2009 um 19:49 Uhr
Hi Godlie,
wäre es dann besser "<?php" zu schreiben?
Bitte warten ..
Mitglied: godlie
11.04.2009 um 13:15 Uhr
Naja statt <?= einfach nur
<?php echo ?> dann bist mit den ShortOpenTags sicher
Bitte warten ..
Mitglied: masterG
11.04.2009 um 19:37 Uhr
Thread closed.

masterG(Moderator)
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
PHP
PHP Daten "Streamen" (3)

Frage von Roadrunner777 zum Thema PHP ...

Festplatten, SSD, Raid
gelöst Frage wegen Partitionen ändern (5)

Frage von DeathNote zum Thema Festplatten, SSD, Raid ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...