Zeitspanne in Tabelle eintragen mit Schleife

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeitspanne in Tabelle eintragen mit Schleife

    Moin zusammen!

    Ich sitze hier an einem Kalender und ärgere mich darüber, dass ich für eine gebuchte Zeitspanne jeden Tag durch absenden eines Formulars einzeln in die Datenbank eintragen muss. Da ich absoluter Newbie in Sachen php/mysql bin und hier auch nichts gefunden habe, was ich zu meinen Zwecken hätte hinbiegen können, schildere ich einfach mal mein Problem:

    Ich habe eine mySQL-Datenbank mit mehreren Tabellen. Jede Tabelle steht für eine Person. Die Datensätze der Tabelle beinhalten einen Index, der sch aus der Jahreszahl und dem aktuellen Tag zusammensetzt (also 1.1.2004= Id 2004001, 2.2.= 2004033 usw.) Bisher muss ich zu jedem Termin, also jedem Tag alle relevanten Daten per Formular einzeln posten. Das macht solange Sinn, wie sich die Daten unterscheiden. Ich habe aber viele Termine, die sich über 5 oder mehr Tage hinziehen. Dann muss ich das Formular 5 mal aufrufen, wobei nur die Id hochgezählt wird und dann alles erneut in der Db gespeichert wird.

    Ich suche einen Lösungsansatz um mit eingegebenen Formulardaten einen Anfang und ein Ende des Zeitraums zu bestimmen und meine Werte dann per Schleife einzutragen. Das müsste doch mittels der Id gut funktionieren, oder? Würde mich über Unterstützung freuen und erwarte hier kein fertiges Script, sondern bitte nur um Tipps und Hilfe bei der Erstellung der Schleife, das wäre toll.

    Gruß von der Ostsee!

    Achja: über kurz oder lang kommt dann auch noch das Problem von 2004366 auf 2005001 springen zu müssen.... Fiel mir grad so ein
    Zuletzt geändert von firefox; 21.04.2004, 10:20.
    wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

  • #2
    2 tabellen
    eine mit personen und pers_id als primärschlüssel
    eine mit terminen, termin_id ist primärschlüssel und person_id ist fremdschlüssel

    eine tabelle für jede person ist nicht so das gelbe vom ei


    die termintabelle sollte in etwa so aufgebaut sein
    termin_id int auto_increment primary key
    pers_id int
    start datetime
    ende datetime
    termin text
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      ich würde zuerst mit der Datenbankdesign überlegen, ob es so sinnvoll ist.
      Pro Person eine Tabelle ist heftig. Wenn du in einer Fa. arbeitet, der einige
      Tausend MitarbeiterInnen hat, dann hast du ein Problem.

      Kommentar


      • #4
        Re: Zeitspanne in Tabelle eintragen mit Schleife

        das ist chaos pur...

        mach dir mal eine tabelle mit

        ..user

        user_id ( auto / einzigartig und als int )
        nickname varchar

        .. termine

        termin_id ( auto / einzigartig und int )
        id_vonuser als int
        zeitstart als int (10)
        zeitende als int (10)
        termin_name als varchar


        bei einem INSERT lässt dir einfach die user_id des anwenders ausgeben ( durch namen suche / session_id / cookies wie auch immer ) und trägst sie dann ein mit dem termin-namen und mittels kalenderfunktion, oder was du auch immer benutzt den time()-wert eintragen.. dann nur ein kleiner mini JOIN und die welt is heile

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          Hallo, Ihr seid ja echt fix
          Erstmal vielen Dank für Eure Vorschläge. eine Tabelle für alle User krieg ich nicht auf die Reihe, auch nicht mit ner Userid oder so.
          Grund:
          Jede Datumsid ist nur einmal vorhanden wegen der Eindeutigkeit, es gibt den Tag 2004001 eben nur einmal. Für jeden User sollen an diesem Tag gleichlautende Daten einzutragen sein. Wie krieg ich das in nur einer Tabelle hin?
          Eigentlich wäre es mir auch angenehmer das ganze über eine Userid abfragen zu können, weil ich zurzeit für jeden User eine eigene config.php verwende und auch völlig getrennt von den anderen halte bis hin zu einem eigenen Verzeichnis für die Templates, die ich individuell für jeden User anpasse.
          Es sind zwar nur 10 User bis jetzt und werden sicher nie viel mehr, aber der Aufwand ist schon irre, wenn man was ändert muss alles eventuell 10 mal gemacht werden.
          Noch zur Ergänzung wegen der besseren Vorstellung:
          Meine Frau und ich machen Ferienwohnungen sauber und möchten jedem Vermieter für seine Wohnung einen Kalender zur Verfügung stellen. Die leute sollen uns die Daten der Vermietung mit Wechsel der Belegung und Angaben zu den Erfordernissen in den Kalender eintragen. Daten sind zum Beispiel ausser den Kalenderdaten: Name der Gäste, Telefonnummer, will der Gast Bettwäsche haben usw. Im Moment habe ich also je Vermieter eine Tabelle eingerichtet und dort bis 2006 bereits die Tage mit einer eindeutigen Id eingetragen. Jede Zeile der Tabellen steht für einen Tag. In der Ausgabe wird dann ein Kalender komplett dargestellt, der es ermöglicht bei Klick auf einen Tag alle entsprechenden Infos zu bekommen. Der Kalender wird dann aus der dem Vermieter zugeordneten Tabelle generiert und die Daten mittels Popup ausgegeben. Daraus ergibt sich, dass je Zeile (Tagesid) nur immer ein Eintrag möglich zu sein scheint. Mir wäre auch lieber, wen man da auch 2 oder 3 Objekte eintragen könnte, weil ein Vermieter drei Kalender aufrufen muss für 3 Wohnungen. Aber da fehlt mir einfach der Überblick, wie ich das realisieren könnte. Guckt Euch mal an, wie es aussehen soll: http://fewo.email2you.de Ist noch nicht voll funktionell, weil ich da ja am arbeiten bin, aber wesentliche Funktionen sind bereits lauffähig.
          Ich befürchte aber, dass ich von vornherein auf dem absoluten Holzweg bin... hätte wohl ganz anders anfangen müssen? Die Id sieht man übrigens bei dem Eingabeformular oben links ganz klein in der Ecke.

          Gruß von der Ostsee!

          P.S.: Übrigens habe ich noch folgende Idee: In unserem Hause sind auch drei Ferienwohnungen. Wenn jemand Lust hat sich da bis zur vollständigen Fertigstellung richtig mit einzuklinken, würde ich ein Wochenende für 2 Personen spendieren inkl. Frühstücksbrötchen und so. Ich möchte das Projekt nämlich möglichst schnell fertig haben, aber für einen Anfänger wie mich ist ein so umfangreiches Projekt nur schwer zu schaffen. Schickt mir einfach eine Email mit Eurer ICQ, MSN, Yahoo oder AIM Adresse. Aber auch für Eure unentgeltliche Hilfe bedanke ich mich schon jetzt, denn meine Frau und ich versprechen uns davon einfach eine effektivere und einfachere Terminplanung. Im Moment läuft alles über Telefon und Email und wird handschriftlich eingetragen und das ist ziemlich nervig...
          wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

          Kommentar


          • #6
            jetzt nochmal langsam.. was willst du genau!?

            sind das nur ein paar user ( immer die selben ) oder immer verschiedene?

            Sollen die Vermieter das selber eintragen können?


            außerdem ist ein zusammenspiel mit time() und date() voll hammers!
            Zuletzt geändert von xManUx; 21.04.2004, 13:03.

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              @xManUx:

              Es sind immer die gleichen. Will nicht ausschliessen, dass da mal welche weggehen und neue hinzukommen, aber vom Prinzip immer der gleiche Personenkreis, zurzeit halt für 10 Objekte 6 Vermieter. Meine Frau und ich schaffen ja eh nicht mehr
              Der Sinn des Kalenders ist die Kommunikation zwischen uns und den Vermietern. Daher tragen die Vermieter ihre Termine ein, wir lesen sie und ergänzen die Daten mit einer OK-Meldung oder Infos zum Ablauf (z.B. Schlüsselübergabe, Probleme etc).

              Gruß von der Ostsee!
              wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

              Kommentar


              • #8
                Original geschrieben von firefox
                @xManUx:

                Es sind immer die gleichen. Will nicht ausschliessen, dass da mal welche weggehen und neue hinzukommen, aber vom Prinzip immer der gleiche Personenkreis, zurzeit halt für 10 Objekte 6 Vermieter. Meine Frau und ich schaffen ja eh nicht mehr
                Der Sinn des Kalenders ist die Kommunikation zwischen uns und den Vermietern. Daher tragen die Vermieter ihre Termine ein, wir lesen sie und ergänzen die Daten mit einer OK-Meldung oder Infos zum Ablauf (z.B. Schlüsselübergabe, Probleme etc).

                Gruß von der Ostsee!
                Dann empfehl ich Dir ein Login-System mit der Unterscheidung Admin/Vermieter.

                Schon mal dran gedacht, dass jeder Fremde rumspielen kann, und Termine vortäuschen kann?

                Mit einem Login-System und kleinerer Join - Abfragen ist Dein 'Problem' gelöst! Sowohl Sicherheit mäßig als auch in den Optimierungsarbeiten. Und mehr als 2 Tabellen brauchst Du dann eigentlich gar nicht !

                Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                sondern mit den Augen das Manual zu lesen.

                Kommentar


                • #9
                  wasn des für ein datumsformat ? benutz mal den timestamp, dauert ne halbe stunde sich da einzulesen, aber danach hast du nie wieder probs mit zeit und datumsfunktionen...


                  An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                  Kommentar


                  • #10
                    Original geschrieben von xManUx
                    Dann empfehl ich Dir ein Login-System mit der Unterscheidung Admin/Vermieter.

                    Schon mal dran gedacht, dass jeder Fremde rumspielen kann, und Termine vortäuschen kann?
                    Diese Sache habe ich über .htaccess gelöst. Benutzername/Passwort-Kombination sollten ausreichen. Ich als Admin komme an die Daten ja sowieso nach Belieben ran.

                    wasn des für ein datumsformat ? benutz mal den timestamp, dauert ne halbe stunde sich da einzulesen, aber danach hast du nie wieder probs mit zeit und datumsfunktionen...
                    Datumsformat kann man das nicht nennen, sondern jeder Tag hat eine eindeutige Id bekommen, die sich am Datum orientiert und keine Duplikate produziert. Wie arbeitet man mit timestamp für künftige Ereignisse, wo kann ich das nachlesen und bietet das entsprechende Möglichkeiten zeitliche ereignisse eindeutig auch in der Zukunft zu belegen?

                    Gruß von der heute ziemlich sonnigen Ostsee!

                    edit:
                    Also nach dem Lesen der Definition für timestamp finde ich zum Beispiel: "Der TIMESTAMP-Typ ist ein Typ, den Sie dafür benutzen können, um INSERT- oder UPDATE-Operationen mit dem aktuellen Datum und der aktuellen Zeit zu stempeln. " Brauche ich ja nicht. Die Datumswerte werden zu irgendeiner Zeit manuell für die Zukunft eingegeben und eine Doppelvergabe der Werte scheidet aus, weil für jeden Tag nur eine Id vergeben werden kann. Daran scheitert es also eigentlich nicht. Wo liegt hier der Ansatz der Kritik? Ich lese da nicht heraus, welche Vorteile diese Funktion mir bringen kann?
                    Zuletzt geändert von firefox; 21.04.2004, 18:30.
                    wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

                    Kommentar


                    • #11
                      du kannst über mktime() ein timestamp für die zukunft produzieren!
                      C-Ya Toby

                      Kommentar


                      • #12
                        Danke für den Tipp!

                        http://www.infos24.de/phpe/handbuch/...umsangaben.htm

                        ...da habe ich wegen mktime() mal nachgelesen und finde das recht interessant. Ob ich das für mich umsetzen kann bleibt vorerst mal dahingestellt, aber zumindest scheint das doch eine Menge herzumachen.
                        Aber mein grundsätzliches Problem, nämlich das ausfüllen von mehreren Zeilen in gleicher Spalte einer Tabelle mit gleichen Daten über Anfangsdatum und Enddatum werde ich wohl auch damit nicht lösen können... eben blutiger Anfänger und bis ich das hinkrieg vergehen wohl noch ein paar Wochen
                        Na mal sehen...

                        Gruß von der Küste!
                        wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

                        Kommentar


                        • #13
                          Original geschrieben von firefox
                          Danke für den Tipp!

                          http://www.infos24.de/phpe/handbuch/...umsangaben.htm

                          ...da habe ich wegen mktime() mal nachgelesen und finde das recht interessant. Ob ich das für mich umsetzen kann bleibt vorerst mal dahingestellt, aber zumindest scheint das doch eine Menge herzumachen.
                          Aber mein grundsätzliches Problem, nämlich das ausfüllen von mehreren Zeilen in gleicher Spalte einer Tabelle mit gleichen Daten über Anfangsdatum und Enddatum werde ich wohl auch damit nicht lösen können... eben blutiger Anfänger und bis ich das hinkrieg vergehen wohl noch ein paar Wochen
                          Na mal sehen...

                          Gruß von der Küste!
                          #

                          mach doch erstmal einfache übungen mit dem umgang von zeit-funktion und dann easy übungen mit dem umgang von mysql!! du schaffst das schon!! dein prob. ist schlichtweg einfacher, als du denkst !

                          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                          sondern mit den Augen das Manual zu lesen.

                          Kommentar


                          • #14
                            Bin gerade kräftig dabei.... und eigentlich guter Dinge.

                            Danke für den Zuspruch, mal sehen was ich draus mache.

                            Liebe Grüße!
                            wer lesen kann ist klar im Vorteil, aber nur wer auch versteht wird diesen auch nutzen können.

                            Kommentar


                            • #15
                              Original geschrieben von firefox
                              Bin gerade kräftig dabei.... und eigentlich guter Dinge.

                              Danke für den Zuspruch, mal sehen was ich draus mache.

                              Liebe Grüße!
                              meld Dich doch einfach mal, wenn wieder Hilfe brauchst

                              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                              sondern mit den Augen das Manual zu lesen.

                              Kommentar

                              Lädt...
                              X