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

mehrere Ausgaben eines Arrays davon soll eine Ausgabe per Checkbox markiert und geändert werden. Bloß wie?

Frage Entwicklung PHP

Mitglied: gechger

gechger (Level 1) - Jetzt verbinden

10.07.2009, aktualisiert 05.10.2009, 4315 Aufrufe, 10 Kommentare

Mit Checkboxen habe ich schon gearbeitet, aber in diesem Fall komme ich mit meinem Wissen nicht weiter.

Hallo Forum,

schön das es Euch gibt. Ihr habt mir bisher immer weiter helfen können. Auch im aktuellen Fall fehlt mir mal wieder der letzte Schubs in die richtige Richtung.

Ich habe ein Formular, aus dem ein User Daten abrufen kann. Diese Daten stehen schön in einem Array und werden auch über eine Schleife ausgegeben. So kann es sein, daß dort 1 Datensatz oder auch ganz viele Datensätze ausgegeben werden.

Der Admin soll diese Daten überprüfen und wenn nötig ändern. Die Auswahl der Datensätze, die geändert werden sollen, will ich durch Checkboxen markieren. Beim Absenden der Checkbox soll nur der gewählte Datensatz in einer neuen Tabelle angezeigt und geändert werden. Hier mal der relevante Teil des Scripts:

01.
while ($row1 = mysql_fetch_assoc($result1)) { 
02.
         //echo "<pre>"
03.
         //print_r($row1); 
04.
         //echo "</pre>"
05.
         if (@$_POST["nachname"] == @$row1["name"]){ 
06.
                 if (!isset($_POST['daten'])) { 
07.
?> 
08.
 
09.
 
10.
<form action="aendern.php" method="post" name="Formular" onSubmit="return chkFormular()"
11.
<table border="1"
12.
         <tr> 
13.
                 <td width="120"><font size="-1">Datum </font></td> 
14.
                 <td width="180"><font size="-1">Name</font></td> 
15.
                 <td width="100"><font size="-1">Stunden</font></td> 
16.
                 <td><input type="radio" name="daten" value="id"></td></form> 
17.
         </tr> 
18.
         <tr> 
19.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
20.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
21.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
22.
                 <td><input type="submit" value="ändern"></td> 
23.
         </tr> 
24.
         <tr> 
25.
                 <td width="250"><font size="-1">Projekt</font></td> 
26.
                 <td width="250"><font size="-1">Auftrag</font></td> 
27.
                 <td width="250"><font size="-1">Einsatz</font></td> 
28.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
29.
         </tr> 
30.
         <tr> 
31.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
32.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
33.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
34.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
35.
         </tr> 
36.
         <tr height="8"
37.
         <td height="8" bgcolor="#999999"></td> 
38.
         <td height="8" bgcolor="#999999"></td> 
39.
         <td height="8" bgcolor="#999999"></td> 
40.
         <td height="8" bgcolor="#999999"></td> 
41.
         </tr> 
42.
</table> 
43.
<? 
44.
45.
else
46.
.......
Ich habe ja nur eine Tabelle, die durch die Schleife mehrfach ausgegeben werden kann. Ich kann also nur einen Radiobutton definieren. Er trägt für jeden Datensatz den gleichen Namen ind das gleiche value.

Wie erreiche ich es also, daß nur der markierte Datensatz des Arrays weitergegeben wird in die neue Tabelle.

Jede Idee hilft.

Schöne Grüße
Christof
Mitglied: thaenhusen
10.07.2009 um 14:24 Uhr
Moin.

Bei den Inputs machst Du einfach folgendes:

<input type="checkbox" name="DSbeachten[]" value="<?php echo $row1["idfeld"]; ?>" />

Damit baust Du dir ein ID-Array mit den ID's der Datensätze, die bearbeitet werden sollen.

In dem nächsten Formular läufst Du das Array DSbeachten[] durch und kannst die Datensätze daduch zur Änderung anbieten.

in_array() wird Dir da wahrscheinlich weiterhelfen.

HTH.
MK
Bitte warten ..
Mitglied: gechger
10.07.2009 um 14:44 Uhr
Hallo MK,

im Prinzip also das Gleiche, als wenn ich eine Liste mit 10 Checkboxen habe und mit array[] im Namen die Daten anschließend weiterverarbeite. Das habe ich schon gemacht, dann werde ich das hier auch so lösen.

Vielen Dank für Deine prompte Antwort.

Schöne GRüße
Christof
Bitte warten ..
Mitglied: thaenhusen
10.07.2009 um 14:57 Uhr
Hallo Christof.

Im Prinzip ja. Wenn Du aber eindeutige ID's hast und mit denen arbeitest wird das
ganze meiner Meinung nach wartungsfreundlicher...

Schöne Grüße
MK
Bitte warten ..
Mitglied: gechger
10.07.2009 um 17:39 Uhr
Hallo MK,

leider krieg ich es nicht hin, weiss aber nicht wieso:

01.
$result1 = mysql_query($sql1) OR die(mysql_error()); 
02.
while ($row1 = mysql_fetch_assoc($result1)) { 
03.
         //echo "<pre>"
04.
         //print_r($row1); 
05.
         //echo "</pre>"
06.
         if (@$_POST["nachname"] == @$row1["name"]){ 
07.
                 if (!isset($_POST["daten[]"])) {         //prüfen, ob der Änderungsbutton gedrückt wurde 
08.
?> 
09.
 
10.
 
11.
<form action="aendern.php" method="post"
12.
<table border="1"
13.
         <tr> 
14.
                 <td width="120"><font size="-1">Datum </font></td> 
15.
                 <td width="180"><font size="-1">Name</font></td> 
16.
                 <td width="100"><font size="-1">Stunden</font></td> 
17.
                 <td><input type="radio" name="daten[]" value="<?php echo $row1["id"]; ?>/"><?php echo $row1["id"]; ?></td> 
18.
         </tr> 
19.
         <tr> 
20.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
21.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
22.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
23.
 
24.
         </tr> 
25.
         <tr> 
26.
                 <td width="250"><font size="-1">Projekt</font></td> 
27.
                 <td width="250"><font size="-1">Auftrag</font></td> 
28.
                 <td width="250"><font size="-1">Einsatz</font></td> 
29.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
30.
         </tr> 
31.
         <tr> 
32.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
33.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
34.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
35.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
36.
         </tr> 
37.
         <tr height="8"
38.
         <td height="8" bgcolor="#999999"></td> 
39.
         <td height="8" bgcolor="#999999"></td> 
40.
         <td height="8" bgcolor="#999999"></td> 
41.
         <td height="8" bgcolor="#999999"></td> 
42.
         </tr> 
43.
 
44.
</table> 
45.
 
46.
<table> 
47.
<tr> 
48.
<td><input type="submit" value="ändern" ></td> 
49.
</tr> 
50.
</table> 
51.
 
52.
 
53.
 </form> 
54.
<?}} 
55.
 else
56.
 
57.
     echo "Selektion erfolgreich"
58.
 
59.
     echo "<pre>"
60.
     print_r($daten); 
61.
     echo "</pre>"
62.
 
63.
     echo "<pre>"
64.
     print_r($row1); 
65.
     echo "</pre>"
66.
 
67.
 
68.
 
69.
 
70.
 
71.
 
72.
73.
74.
?> 
75.
 
76.
 
77.
</body>
Ich prüfe zunächst mit
if (!isset($_POST["daten[]"])) ,
ob der Änderungsbutton betätigt wurde. Wenn nicht, soll er die gewünschten Daten zu Ansicht ausgeben, was auch passiert.

Wenn der Änderungsbutton gedrückt wird, will ich zunächst die Inhalte der Arrays ausgegeben haben, um zu sehen, was da drin steht.
Ich bekomme aber keine Anzeige.

Kann es sein, daß der Änderungsbutton nicht funktioniert, weil er Bestandteil der Schleife ist und zu jedem Datensatz erscheint?
Oder kann ich mit $_POST["daten[]") keine Prüfung vornehmen?

Schöne Grüße
Christof
Bitte warten ..
Mitglied: godlie
10.07.2009 um 19:03 Uhr
Hallo,

einem Radiobutton ein array zu geben macht recht wenig sinn!
Da bei mehreren Radiobuttons ja nur einer ausgewählt werden kann.

Jetzt mal eine Frage fürs Verständnis:

Willst du jetzt das bei der Anzeige der gesamtdaten es nur möglich ist einen Datensatz zum Bearbeiten auszuwählen oder das mehrere bearbeitet werden können?
Bitte warten ..
Mitglied: gechger
10.07.2009 um 20:40 Uhr
Hi Godlie,

schwere Entscheidung. Es ist sicherlich bessser in der Praxis, alle gewählten Datensätze in einem Rutsch zu ändern. Geht wahrscheinlich etwas schneller.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: gechger
10.07.2009 um 20:45 Uhr
Hallo an Alle,

ich habe jetzt mal getestet, die Ausgabe an ein neues Formular zu senden.
So sieht das neue Formular aus:

01.
<? session_start(); 
02.
error_reporting(E_ALL); #zeig alle Fehler 
03.
ini_set('display_errors', '1'); #sorgt dafür, dass überhaupt Fehler angezeigt werden 
04.
 
05.
?> 
06.
 
07.
<!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Frameset//EN" 
08.
  -- Typical usage: 
09.
 
10.
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
11.
            "http://www.w3.org/TR/html4/frameset.dtd"
12.
 
13.
<html> 
14.
<head> 
15.
<title>Daten ändern</title> 
16.
 
17.
        <meta http-equiv="expires" content="0"
18.
        <meta name="author" content="Christof Gersky"
19.
 
20.
</head> 
21.
 
22.
<body> 
23.
<?php 
24.
foreach($seite as $elem) { 
25.
$cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']) or die(mysql_error()); 
26.
mysql_select_db($_SESSION['db']); 
27.
$sql = "SELECT * FROM ".$_SESSION['tabdat']." where id = $elem"
28.
echo mysql_error(); 
29.
$result = mysql_query($sql) OR die(mysql_error()); 
30.
while ($row = mysql_fetch_assoc($result)) { 
31.
?> 
32.
<table border="1"
33.
         <tr> 
34.
                 <td width="120"><font size="-1">Datum </font></td> 
35.
                 <td width="180"><font size="-1">Name</font></td> 
36.
                 <td width="100"><font size="-1">Stunden</font></td> 
37.
         </tr> 
38.
         <tr> 
39.
                 <td width="120"  bgcolor="#FFFFFF" name="datum" value="<? echo $row["datum"]; ?>" > <font size="-1"></font></td> 
40.
                 <td width="180" bgcolor="#FFFFFF" name="name" value="<? echo $row["name"]; ?>" > <font size="-1"></font></td> 
41.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit" value="<? echo $row["zeit"]; ?>" > <font size="-1"></font></td> 
42.
 
43.
         </tr> 
44.
         <tr> 
45.
                 <td width="250"><font size="-1">Projekt</font></td> 
46.
                 <td width="250"><font size="-1">Auftrag</font></td> 
47.
                 <td width="250"><font size="-1">Einsatz</font></td> 
48.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
49.
         </tr> 
50.
         <tr> 
51.
                 <td width="250" bgcolor="#FFFFFF" name="projekt" value="<? echo $row["projekt"]; ?>" > <font size="-1"></font></td> 
52.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag" value="<? echo $row["auftrag"]; ?>" > <font size="-1"></font></td> 
53.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz" value="<? echo $row["einsatz"]; ?>" > <font size="-1"></font></td> 
54.
                 <td width="60" bgcolor="#FFFFFF" name="tat" value="<? echo $row["taetigkeit"]; ?>" > <font size="-1"></font></td> 
55.
         </tr> 
56.
         <tr height="8"
57.
         <td height="8" bgcolor="#999999"></td> 
58.
         <td height="8" bgcolor="#999999"></td> 
59.
         <td height="8" bgcolor="#999999"></td> 
60.
         <td height="8" bgcolor="#999999"></td> 
61.
         </tr> 
62.
 
63.
</table> 
64.
<? 
65.
}} 
66.
?> 
67.
</body> 
68.
</html> 
69.
<!ENTITY % HTML.Frameset "INCLUDE"
70.
<!ENTITY % HTML4.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Aber dann bekomme ich eine Fehlermeldung:

Parse error: syntax error, unexpected '<' in /pages/be/0e/d0006174/home/htdocs/webtool/aenderaktdat.php on line 24

Es ist die Zeile mit der foreach Schleife. Aber ich finde nichts, was diesen Fehler verursachen könnte.

Seht Ihr da was????
Bitte warten ..
Mitglied: gechger
13.07.2009 um 13:22 Uhr
Hallo Forum,

bin nun einen Schritt weiter. Ich verwende einfach ein neues Formular.
Das erste sieht so aus:

01.
<form action="aenderndo.php" method="post"
02.
<table border="1"
03.
         <tr> 
04.
                 <td width="120"><font size="-1">Datum </font></td> 
05.
                 <td width="180"><font size="-1">Name</font></td> 
06.
                 <td width="100"><font size="-1">Stunden</font></td> 
07.
                 <td><input type="checkbox" name="daten[]" value="<?echo $row1["id"]?>"></td> 
08.
         </tr> 
09.
         <tr> 
10.
                 <td width="120"  bgcolor="#FFFFFF" name="datum"><font size="-1"><b><? echo $row1["datum"]; ?></b></font></td> 
11.
                 <td width="180" bgcolor="#FFFFFF" name="name"><font size="-1"><b><? echo $row1["name"]; ?></b></font></td> 
12.
                 <td width="100"  bgcolor="#FFFFFF" name="zeit"><font size="-1"><b><? echo $row1["zeit"]; ?></b></font></td> 
13.
 
14.
         </tr> 
15.
         <tr> 
16.
                 <td width="250"><font size="-1">Projekt</font></td> 
17.
                 <td width="250"><font size="-1">Auftrag</font></td> 
18.
                 <td width="250"><font size="-1">Einsatz</font></td> 
19.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
20.
         </tr> 
21.
         <tr> 
22.
                 <td width="250" bgcolor="#FFFFFF" name="projekt"><font size="-1"><b><? echo $row1["projekt"]; ?></b></font></td> 
23.
                 <td width="250" bgcolor="#FFFFFF" name="auftrag"><font size="-1"><b><? echo $row1["auftrag"]; ?></b></font></td> 
24.
                 <td width="250" bgcolor="#FFFFFF" name="einsatz"><font size="-1"><b><? echo $row1["einsatz"]; ?></b></font></td> 
25.
                 <td width="60" bgcolor="#FFFFFF" name="tat"><font size="-1"><b><? echo $row1["taetigkeit"]; ?></b></font></td> 
26.
         </tr> 
27.
         <tr height="8"
28.
         <td height="8" bgcolor="#999999"></td> 
29.
         <td height="8" bgcolor="#999999"></td> 
30.
         <td height="8" bgcolor="#999999"></td> 
31.
         <td height="8" bgcolor="#999999"></td> 
32.
         </tr> 
33.
</table> 
34.
<?} 
35.
36.
?> 
37.
<td><input type="submit" value="ändern"></td></form>
Wichtig dabei war, daß der Änderungs-Button außerhalb der Schleife liegt. Liegt er innerhalb, wird nur der "selektierte" Datensatz übergeben. Jetzt bekomme ich alle.

Die anderdatdo.php, an die ich die Werte übergebe, sieht so aus:
01.
<?php 
02.
 
03.
$cldb = mysql_connect($_SESSION['host'], $_SESSION['dbuser'], $_SESSION['passwort']) or die(mysql_error()); 
04.
mysql_select_db($_SESSION['db']); 
05.
$daten=$_POST["daten"]; 
06.
echo "<pre>"
07.
         print_r($daten); 
08.
         echo "</pre>"
09.
foreach ($daten as $key => $datenarr) { 
10.
 
11.
        echo $datenarr
12.
 
13.
 
14.
$sql = "SELECT * FROM ".$_SESSION['tabdat']." where id='$datenarr' order by datum"
15.
echo mysql_error(); 
16.
$result = mysql_query($sql) OR die(mysql_error()); 
17.
while ($row = mysql_fetch_assoc($result)) { 
18.
 
19.
 
20.
 
21.
?> 
22.
 
23.
 
24.
<table border="1"
25.
         <tr> 
26.
                 <td width="120"><font size="-1">Datum </font></td> 
27.
                 <td width="180"><font size="-1">Name</font></td> 
28.
                 <td width="100"><font size="-1">Stunden</font></td> 
29.
 
30.
         </tr> 
31.
         <tr> 
32.
                 <td width="120"  bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["datum"]; ?></b></font></td> 
33.
                 <td width="180" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["name"]; ?></b></font></td> 
34.
                 <td width="100"  bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["zeit"]; ?></b></font></td> 
35.
 
36.
         </tr> 
37.
         <tr> 
38.
                 <td width="250"><font size="-1">Projekt</font></td> 
39.
                 <td width="250"><font size="-1">Auftrag</font></td> 
40.
                 <td width="250"><font size="-1">Einsatz</font></td> 
41.
                 <td width="60"><font size="-1">Tätigkeit</font></td> 
42.
         </tr> 
43.
         <tr> 
44.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["projekt"]; ?></b></font></td> 
45.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["auftrag"]; ?></b></font></td> 
46.
                 <td width="250" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["einsatz"]; ?></b></font></td> 
47.
                 <td width="60" bgcolor="#FFFFFF"><font size="-1"><b><? echo $row["taetigkeit"]; ?></b></font></td> 
48.
         </tr> 
49.
         <tr height="8"
50.
         <td height="8" bgcolor="#999999"></td> 
51.
         <td height="8" bgcolor="#999999"></td> 
52.
         <td height="8" bgcolor="#999999"></td> 
53.
         <td height="8" bgcolor="#999999"></td> 
54.
         </tr> 
55.
</table> 
56.
 
57.
<? 
58.
 
59.
60.
61.
?>
Darin stehen jetzt alle ausgewählten Elemente.

Vielen Dank für Eure Hilfe.

Schöne Grüße
Christof
Bitte warten ..
Mitglied: Guenni
13.07.2009 um 22:50 Uhr
Hi Christof,

jetzt kannst du Datensätze, die zum Ändern markiert sind, in einem zweiten Formular

ausgeben. Aber diese werden, wie im ersten Formular, doch erstmal nur angezeigt.

Du könntest doch in einem Formular die Abfrageergebnisse einer DB direkt in Text-

bzw. Inputfelder ausgeben.


Die Input-Felder werden als Array deklariert, Index ist die jeweilige

Datensatz-ID. Am Ende wird, ebenfalls als Array, eine Checkbox angehangen,

Dem Value der Checkbox wird ebenfalls die Datensatz-ID übergeben.

Am Ende des Formulars noch ein Submit-Button, und alle markierten Datensätze

werden nach Absenden geändert.


Erstmal das Formular:

01.
<form action="<?echo $_SERVER[PHP_SELF];?>" method="post"
02.
 
03.
<table border="1"
04.
 
05.
<?php 
06.
 
07.
$query="select . . . u.s.w."
08.
 
09.
$result=mysql_query($query); 
10.
 
11.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
12.
 
13.
?> 
14.
 
15.
<tr> 
16.
 
17.
<td><input type="text" name="vorname[<?echo $row[id];?>]" value="<?echo $row[Vorname];?>" /></td> 
18.
 
19.
<td><input type="text" name="nachname[<?echo $row[id];?>]" value="<?echo $row[Nachname];?>" /></td> 
20.
 
21.
... usw., je nach Anzahl Felder 
22.
 
23.
<td><input type="checkbox" name="edit[]" value="<?echo $row[id];?>" /></td> 
24.
 
25.
</tr> 
26.
 
27.
<? 
28.
29.
?> 
30.
<tr> 
31.
 
32.
<td colspan="Anzahl_Spalten"><input type="submit" value="Edit" name="cmd" /></td> 
33.
 
34.
</tr> 
35.
 
36.
</table> 
37.
 
38.
</form>
Die Verarbeitung des Formulars:

01.
<?php 
02.
//Prüfen, ob das Formular gesendet wurde. 
03.
 
04.
if(isset($_POST['cmd'])){ 
05.
 
06.
//Prüfen, ob wenigstens eine Checkbox markiert war, denn nur die werden gesendet. 
07.
  
08.
 if(isset($_POST['edit'])){ 
09.
   
10.
   //Wenn dem so ist, werden die gesendeten Daten in Variablen abgelegt. 
11.
   //Ich persönlich finde, dann ist die Sache leichter zu handeln. 
12.
         
13.
	$vornamen=$_POST['vorname']; 
14.
	$nachnamen=$_POST['nachname']; 
15.
	 
16.
   
17.
   //In der foreach-Schleife werden nun die einzelnen Value's(die Datensatz-ID's) aus dem 
18.
   //Array der Checkbox in die Variable id abgelegt. 
19.
   //Mit dieser Variablen kann ich nun die Array-Elemente der übertragenen Input-Felder 
20.
   //ansprechen und verarbeiten. 
21.
	 
22.
  foreach($_POST['edit'] as $id){ 
23.
	 $query="update tabelle"
24.
	 $query.=" set vorname='$vornamen[$id]',nachname='$nachnamen[$id]'"
25.
	 $query.=" where id=$id"
26.
	 $result=mysql_query($query) or die(mysql_error()); 
27.
28.
29.
30.
 
31.
?>
Gruß
Günni
Bitte warten ..
Mitglied: gechger
14.07.2009 um 20:49 Uhr
Hi Günni,

scheint, als wenn durch Dein Script alles etwas schlanker wird.
Ich versuche mal, daß umzusetzen. Wird aber ein paar Tage dauern, da ich mal wieder meinem "normalen" Job nachgehen muß und einige Tage im Ausseneinsatz bin. Leider kann ich php nur so "nebenbei" machen.

Nicht gerade ideal, man muß sich ja immer neu eindenken.

Jedenfalls viieeeelen Dank
und schöne Grüße

Christof
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
Access Checkbox mit Kombifeld und dann filtern

Frage von atomas42 zum Thema Datenbanken ...

Festplatten, SSD, Raid
Performancesteigerung des RAID Arrays möglich? (13)

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

Windows Server
Windows Remote App - Ausgabe in lokales Office (1)

Frage von fluluk zum Thema Windows Server ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...