zwei Fragen Formular und GET/POST

  • Die verschiedenen Varianten entstehen dadurch das die Leute nicht immer den Selben Namen für sich selbst eingeben weil Sie zu Faul dafür sind.


    Beispiel:


    Einmal schreibt er bei Name Max Muster und die Zeit usw.

    Am nächsten Tag schreibt er bei Name Max M und die Zeit usw.

    Nächster Tag schreibt er bei Name MM usw.


    Am leichtesten wäre es für mich für jede Person die Auswertung über den Namen zu machen nur wenn die Person für seinen Namen immer wieder verschiedene Varianten einträgt tue ich mir mit dem Auslesen sehr schwer.


    Darum wollte ich das eben über ein Auswahlmenü machen wo er seinen Namen auswählen muss und ich so immer exakt den selben Namen habe.

  • So verstehe ich es besser. Ein Auswahlmenü ist schon mal ein guter Ansatz zur Lösung. Aber auch dabei gilt: Die Namen aus der DB auszulesen um das Menü zu füllen ist mit SQL ein Einzeiler, wenn sie alle in einer Tabelle sind. Allerdings müsste der Name, wenn er zum ersten Mal erfasst wird, die korrekte Form haben.


    Scheint so eine Art Zeiterfassung zu werden, nicht wahr?

  • danke euch 2 für diese Hilfen.


    Zu Sempervivum genau das sollte es werden. Ich möchte es nur so sauber wie möglich hinbekommen. Und wenn jeder User eine eigene Tabelle hat ist es zwar viel mehr Arbeit aber dafür hat man für jede Person eine saubere Tabelle und ist einfach austauschbar. Und wie du selbst sagst das auslesen eines User aus der DB ist nicht viel Code nur wenn der User immer verschieden eingibt wirds schwer.


    m.scastello das mit dem Login hab ich mir eben auch schon überlegt. Mein Lösungsansatz ist derzeit das ich eine Hauptseite habe wo alle ihre Namen sehen und dort 2 Buttons hat einmal für die Desktopansicht und einmal für die Mobile ansicht am Handy. Von dort kommen sie dann Automatisch auf das eigentliche Formular welches mit Ihrem Namen verbunden ist und sie nur noch eintragen müssen.


    Das mit einem Login mit Password ist so eine Sache ich weiß ganz genau das sie das Password wieder vergessen usw. und dann wieder nichts eintragen.

  • Dann mache das Login ohne Passwort und nur mit Benutzernamen. Wenn das ganze System nicht großartig abgesichert werden muss, dann reicht es ja, wenn du nur den Benutzernamen kennst.

  • das ist eine gute Idee danke.


    Manchmal denkt mein einfach viel zu Kompliziert und die Lösung wäre doch so einfach.

  • Ein Login ohne Passwort hat gegenüber einem Select keine Vorteile aber zwei Nachteile:

    1. Anfällig gegen Falscheingaben, d. h. wir sind wieder da, wo wir am Anfang waren.

    2. Komplizierter in der Bedienung (zwei Schritte gegenüber einem) und der Realisierung.

  • Hi,


    ich würde ein System anlegen in dem alle vorhandenen Mitarbeiter in eine Datenbank gespeichert werden.


    Nun erstellst du das Formular zur Zeiterfassung. Dabei kannst du für den Namen ein Textfeld angeben und auf dieses eine JS-Funktion anwenden welche nach jedem Tastendruck den Buchstaben über ein Request an eine PHP Datei sendet. In der PHP Datei fragst du dann die Datenbanktabelle in der alle Mitarbeiternamen drinstehen nach den Buchstaben ab und gibst dann als Result den Namen aus der am ähnlichsten zu den Buchstaben passt.


    Beispiel:


    Name: Claudia Fischer - Eingabe im Formular: Cla


    Dann fetchst du alle Namen mit ihrer eindeutigen ID aus der Datenbanktabelle die mit Cla beginnen. Die gefundenen Namen kannst du auch unterhalb des Formularfeldes anzeigen lassen. Dann kann die Mitarbeiterin ihren Namen auswählen und dieser wird dann in das Input-Feld eingefügt - dazu wird noch die eindeutige ID dort als Value mitgegeben. Zum Beispiel als Hidden-Feld.


    Bei Absenden des Formulares speicherst du dann die jeweilige Id mit der erfassten Zeit dieser Mitarbeiterin in die Datenbank.


    Danach kannst du über ein Join die eindeutige ID mit der Mitarbeitertabelle verbinden und hast nun die Mitarbeiternamen zu den Einträgen. So hast du auch die Daten in der Datenbank gut getrennt.


    Grüße

  • Das mit einem Login mit Password ist so eine Sache ich weiß ganz genau das sie das Password wieder vergessen usw. und dann wieder nichts eintragen.

    Das kann aber unmöglich ein Contra gegen einen sauberen Login sein?!

    Der Login ist die beste Lösung für Dein Problem, daran solltest Du festhalten. Alles andere führt nur dazu, dass versehentlich oder bewußt falsche Daten angezeigt werden könnten.

  • Das mit dem Login scheint mir echt die beste Lösung zu sein und ich werde diese Heranziehen.

    Vielen dank für die tollen vorschläge.


    Und Ihr habt recht eine saubere Lösung vorzuziehen.

  • Wieder eine Frage von mir was ich gerade nicht verstehen.


    Ich hab 2 Zeit Einträge in der Table diese lasse ich jetzt Minus Rechen.


    Bsp: Wert1 = 01:00:00

    Wert2 = 00:30:00


    Also hab ich ein SELECT von den 2 Werten gemacht, Wert1 - Wert2 und übergebe das in einen neuen Wert3.


    Soweit so gut lasse ich mir den Wert3 jetzt anzeigen kommt aber als Ergebnis 1 raus Oo.

    Ich denke Wert3 soll auch TIME bekommen.

    Hab Wert3 schon in sql als TIME angelegt aber das ändert leider nichts daran das es 1 ist.


    Ich denke ich übersehe schon wieder etwas.

  • Wie rechnest du denn?

    Ich rate mal und sage, du rechnest einfach


    Wert2 - Wert1. Da kommt dann 1 raus.


    Zeiten könnte man so berechnen, mit der PHP Methode strtotime().

    Code
    1. $startzeit = strtotime("01:00:00");
    2. $endzeit = strtotime("00:30:00");
    3. //Subtrahiere die Endzeit von der Startzeit und Teile durch 60 um den Wert in Minuten zu bekommen
    4. $dauerInMinuten = ($endzeit - $startzeit)/60;
    5. echo $dauerInMinuten;

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Blickwinkelkanone ()

  • Also der Tip mit der Datenbank ist genial!


    Hab es vorher so wie Blickwinkelkanone beschreibt gemacht nur ohne umrechnen.


    Aber das das die Datenbank kann ist genial. Werde ich sofort testen danke danke!

  • Beachte hier aber bei beiden Varianten die Datumsgrenze, sollten die Uhrzeiten an unterschiedlichen Tagen sein.

    Das gleiche könnte man dann, wenn man es richtig macht (und auch gebraucht wird), für Sommer- und Winterzeit noch machen.