Alt 27.08.2011, 14:04:20   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard Mehrere Daten auf einmal speichern

Ich habe ein Problem, von dem ich nicht weiß, ob ich es überhaupt in Worte fassen kann. Ich versuchs einmal.

1) Es handelt sich um eine Fehlstunden-Übersicht in einem Adminbereich.
2) In einer Tabelle sind die User mit persönlichen Angaben, wie Vorname, Nachname, usw. eingetragen.
3) In einer zweiten Tabelle sollen nun alle Fehlstunden eingetragen werden -->
Code:
1:
fehlstunden_id | user_id | fehlstunden_datum | fehlstunden_anzahl | fehlstunden_status (0=unentschuldigt, 1=entschuldigt)
4) Testweise hab ich nun 2 Werte bereits eingetragen, nämlich:
Code:
1:
2:
1 | 5 | 2011-08-25 | 5 | 0 2 | 9 | 2011-08-24 | 4 | 1
5) Das Script listet im Adminbereich alles bereits in einer Wochenansicht schön auf --> das hab ich bereits hinbekommen.

6) Aber jetzt kommts...ich möchte gerne, dass ich jeden Tag immer weitere Fehlstunden in die Textfelder eintragen kann und auch die Checkbox setzen kann (wenn ich eine schriftliche Entschuldigung bekommen habe) und dann den gesamten Tag mittels Submit-Button unten abspeichere.
Mein Problem ist nun, dass ich nicht weiß, welche Namen die Textfelder bekommen sollen, damit alles leicht abgespeichert werden kann...versteht ihr mich??
Drrichardfahrer ist offline   Mit Zitat antworten
Gesponsorte Links
Alt 27.08.2011, 14:53:17   #2 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Den Primärschlüssel? ...oder versteh ich es nicht?
theHacker ist offline   Mit Zitat antworten
Alt 27.08.2011, 15:10:35   #3 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard

Also nochmal...

Nehmen wir an, heute ist der 25.08.

Ich als Admin mache folgendes:
- User 5 hat Entschuldigung ausgehändigt --> Checkbox checked
- User 17 hat 4 Stunden gefehlt --> bei ID 17 am 25.08. in das Feld "4" hineinschreiben.

Dann will ich mittels Submit-Klick auf 25.08. alle Einträge, die den 25.08. in der Datenbank UPDATEn lassen...

Da ich ja alles in einer for-Schleife anzeigen lasse, weiß ich nun nicht, wie ich <input type='text'> und <input type='checkbox'> benennen soll, damit das Script beim Submitten wieder in einer for-Schleife alle User durchgeht und die Textfelder sowie Checkboxen UPDATEd.

Hier noch ein Teil desCodes - das, was die Tabelle erzeugt (ist wahrscheinlich nicht gerade der Schönste...):

PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
echo "<table border='1'>
    <tr>
        <th>ID</th>
        <th>User</th>
        <th>Mo<br />" 
date('d'$montag_datum) . "." date('m'$montag_datum) . ".</th>
        <th>Di<br />" 
date('d'$dienstag_datum) . "." date('m'$dienstag_datum) . ".</th>
        <th>Mi<br />" 
date('d'$mittwoch_datum) . "." date('m'$mittwoch_datum) . ".</th>
        <th>Do<br />" 
date('d'$donnerstag_datum) . "." date('m'$donnerstag_datum) . ".</th>
        <th>Fr<br />" 
date('d'$freitag_datum) . "." date('m'$freitag_datum) . ".</th>
    </tr>"
;

for (
$i=0$i<$num$i++) {
    echo 
"<tr><td>" $user_id[$i] . "</td><td>" ucfirst($user_vorname[$i]) . " " ucfirst($user_nachname[$i]) . "</td>";
    
    
    
$row_mo $db->Select(array("fehlstunden_id""user_id""fehlstunden_date""fehlstunden_anzahl""fehlstunden_status"),"fehlstunden","WHERE user_id = '" $user_id[$i] . "' AND fehlstunden_date = '" date('Y'$montag_datum) . "-" date('m'$montag_datum) . "-" date('d'$montag_datum) . "' LIMIT 1",1);
    
    
$row_di $db->Select(array("fehlstunden_id""user_id""fehlstunden_date""fehlstunden_anzahl""fehlstunden_status"),"fehlstunden","WHERE user_id = '" $user_id[$i] . "' AND fehlstunden_date = '" date('Y'$dienstag_datum) . "-" date('m'$dienstag_datum) . "-" date('d'$dienstag_datum) . "' LIMIT 1",1);
    
    
$row_mi $db->Select(array("fehlstunden_id""user_id""fehlstunden_date""fehlstunden_anzahl""fehlstunden_status"),"fehlstunden","WHERE user_id = '" $user_id[$i] . "' AND fehlstunden_date = '" date('Y'$mittwoch_datum) . "-" date('m'$mittwoch_datum) . "-" date('d'$mittwoch_datum) . "' LIMIT 1",1);
    
    
$row_do $db->Select(array("fehlstunden_id""user_id""fehlstunden_date""fehlstunden_anzahl""fehlstunden_status"),"fehlstunden","WHERE user_id = '" $user_id[$i] . "' AND fehlstunden_date = '" date('Y'$donnerstag_datum) . "-" date('m'$donnerstag_datum) . "-" date('d'$donnerstag_datum) . "' LIMIT 1",1);
    
    
$row_fr $db->Select(array("fehlstunden_id""user_id""fehlstunden_date""fehlstunden_anzahl""fehlstunden_status"),"fehlstunden","WHERE user_id = '" $user_id[$i] . "' AND fehlstunden_date = '" date('Y'$freitag_datum) . "-" date('m'$freitag_datum) . "-" date('d'$freitag_datum) . "' LIMIT 1",1);
    
    echo 
"<td><input type='text' name='????????' size='1' value='" $row_mo['fehlstunden_anzahl'] . "' />";
    if (
$row_mo['fehlstunden_anzahl'] != "") { 
        echo 
"<input type='checkbox' name='????????'";
        if (
$row_mo['fehlstunden_status'] == "1") { echo " checked='checked'"; }
        echo 
" />";
    }
    echo 
"</td><td><input type='text' name='????????' size='1' value='" $row_di['fehlstunden_anzahl'] . "' />";
    if (
$row_di['fehlstunden_anzahl'] != "") { 
        echo 
"<input type='checkbox' name='????????'";
        if (
$row_di['fehlstunden_status'] == "1") { echo " checked='checked'"; }
        echo 
" />";
    }
    echo 
"</td><td><input type='text' name='????????' size='1' value='" $row_mi['fehlstunden_anzahl'] . "' />";
    if (
$row_mi['fehlstunden_anzahl'] != "") { 
        echo 
"<input type='checkbox' name='????????'";
        if (
$row_mi['fehlstunden_status'] == "1") { echo " checked='checked'"; }
        echo 
" />";
    }
    echo 
"</td><td><input type='text' name='????????' size='1' value='" $row_do['fehlstunden_anzahl'] . "' />";
    if (
$row_do['fehlstunden_anzahl'] != "") { 
        echo 
"<input type='checkbox' name='????????'";
        if (
$row_do['fehlstunden_status'] == "1") { echo " checked='checked'"; }
        echo 
" />";
    }
    echo 
"</td><td><input type='text' name='????????' size='1' value='" $row_fr['fehlstunden_anzahl'] . "' />";
    if (
$row_fr['fehlstunden_anzahl'] != "") { 
        echo 
"<input type='checkbox' name='????????'";
        if (
$row_fr['fehlstunden_status'] == "1") { echo " checked='checked'"; }
        echo 
" />";
    }
    echo 
"</td></tr>";
}

echo 
"<tr><td></td><td></td>
    <td><input type='submit' name='save_mo' value='" 
date('d'$montag_datum) . "." date('m'$montag_datum) . "' /></td>
    <td><input type='submit' name='save_di' value='" 
date('d'$dienstag_datum) . "." date('m'$dienstag_datum) . "' /></td>
    <td><input type='submit' name='save_mi' value='" 
date('d'$mittwoch_datum) . "." date('m'$mittwoch_datum) . "' /></td>
    <td><input type='submit' name='save_do' value='" 
date('d'$donnerstag_datum) . "." date('m'$donnerstag_datum) . "' /></td>
    <td><input type='submit' name='save_fr' value='" 
date('d'$freitag_datum) . "." date('m'$freitag_datum) . "' /></td>";

echo 
"</tr></table>"
Drrichardfahrer ist offline Threadstarter   Mit Zitat antworten
Alt 27.08.2011, 15:33:29   #4 (permalink)
www.Scar4U.de

ID: 81662
Lose-Remote
Reallife

Reg: 03.06.2006
Beiträge: 427
Scar wird schon bald berühmt werden
Standard

Nimm ein Array für die Checkbox-Namen.

z. B.: field[userid][day]

darin kannst du dann die UserID und den Tag ablegen.

Im PHP musst du dann nur noch das Array durchlaufen und bis auch schon fertig.
Scar ist offline   Mit Zitat antworten
Alt 27.08.2011, 18:11:31   #5 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard

Wie meinst du das jetzt?

Für die Textfelder?
PHP-Code:
1:
<input type='text' name='fehlstunden['" . $user_id . "']['" . $tag . "']' size='1' /> 
Für die Checkboxen?
PHP-Code:
1:
<input type='checkbox' name='checkboxen['" . $user_id . "']['" . $tag . "']' size='1' /> 
Oder hab ich das falsch verstanden?
Drrichardfahrer ist offline Threadstarter   Mit Zitat antworten
Alt 27.08.2011, 18:24:53   #6 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Richtig. Müsste so klappen.
theHacker ist offline   Mit Zitat antworten
Alt 27.08.2011, 21:25:32   #7 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard

Hm...komme da im Moment nicht wirklich weiter.

Hab jetzt unten 5 Submit-Buttons mit name='save[tag]'...

Wenn ich jetzt oben jedoch aufrufe mit if($_POST['save[tag]'], dann erscheint nichts...

Wie müssen da die 5 Submit-Buttons und die Abfrage aussehen...hab noch nie mit mehrdimensionalen Arrays gearbeitet
Drrichardfahrer ist offline Threadstarter   Mit Zitat antworten
Alt 27.08.2011, 22:47:33   #8 (permalink)
bekämpft die Mächte des Bösen
Benutzerbild von theHacker

ID: 69505
Lose-Remote

theHacker eine Nachricht über ICQ schicken theHacker eine Nachricht über AIM schicken theHacker eine Nachricht über MSN schicken theHacker eine Nachricht über Yahoo! schicken theHacker eine Nachricht über Skype™ schicken
Reg: 20.04.2006
Beiträge: 20.468
theHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes AnsehentheHacker genießt hohes Ansehen
Standard

Wieso 5 Submits? Einer reicht doch

Allgemein: Wenn du mehrere Submits hast, werden
  • immer alle Non-Submit-Felder submitted
  • von den Submit-Feldern nur dasjenige submitted, dessen Button du gedrückt hast
  • die anderen Submit-Felder werden nicht übertragen.

Zum Debuggen:
PHP-Code:
1:
print_r($_POST); 
Damit siehst du, was du geschickt hast.
theHacker ist offline   Mit Zitat antworten
Alt 28.08.2011, 15:27:19   #9 (permalink)
www.Scar4U.de

ID: 81662
Lose-Remote
Reallife

Reg: 03.06.2006
Beiträge: 427
Scar wird schon bald berühmt werden
Standard

Zitat:
Zitat von Drrichardfahrer Beitrag anzeigen
Wenn ich jetzt oben jedoch aufrufe mit if($_POST['save[tag]'], dann erscheint nichts...
Falsch: $_POST['save[tag]']
Richtig(er): $_POST['save']['tag']

Die Feldnamen mit dieser Schreibweise werden in PHP direkt in ein Array umgewandelt
Scar ist offline   Mit Zitat antworten
Alt 28.08.2011, 23:38:54   #10 (permalink)
Erfahrener Benutzer
Benutzerbild von Drrichardfahrer

ID: 207405
Lose-Remote

Reg: 20.04.2006
Beiträge: 6.740
Drrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes AnsehenDrrichardfahrer genießt hohes Ansehen
Standard

Danke, war bei der Auswertung noch eine zache Geschichte...2 foreach-Schleifen, um all die Arrays zu entschlüsseln...ich habe nämlich jetzt so gelöst, dass ich noch eine 3. Dimension angehängt habe (nur mit [0] für Anzahl der Fehlstunden und [1] für entschuldigt/nicht entschuldigt...
Drrichardfahrer ist offline Threadstarter   Mit Zitat antworten
Alt 29.08.2011, 07:07:30   #11 (permalink)
www.Scar4U.de

ID: 81662
Lose-Remote
Reallife

Reg: 03.06.2006
Beiträge: 427
Scar wird schon bald berühmt werden
Standard

Wenn ich dir nen Tipp geben darf:

Ersetzte die "0" durch "anzahl"; und die "1" durch "entschuldigt".

Es bringt deutliche Vorteile, Softwareentwicklung möglichst lesbar zu halten. In einem Jahr wirst du sonst bereits Probleme haben, alles wieder zusammen zu puzzeln.
Scar ist offline   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neuerdings einmal jährlich Schufa-Auskunft über eigene Daten kostenlos mighty666 Politik, Steuern & Finanzen 33 03.05.2010 17:20:46
Mysql Daten in XML Datei speichern Sammler Programmierung 2 14.07.2008 16:54:44
Outlook Express: Mehrere Dateianhänge gleichzeitig speichern mahni Software/Windows 4 08.01.2007 00:17:00
[PHP/Mysql] daten in Datenbank speichern. Und wieder ausgeben Freeze Programmierung 11 21.08.2006 19:09:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56:37 Uhr.