Termin Finden Script

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

  • Termin Finden Script

    Hallo,

    Ich bräuchte mal Eure Hilfe und am besten von Anfang an, damit ich auch von Anfang an den richtigen Weg gehe.

    Und zwar möchte ich gerne eine bestimmte Funktion erstellen.
    Ein User (ist angemeldet, hab also ID und so) geht auf eine Seite und dort wird im ein Kalender angezeigt. Ich hatte jetzt im Kopf ein Monatskalender oder 3-Monatskalender. Vielleicht habt ihr aber auch eine bessere Idee.
    In diesem Kalender kann der User jetzt auswählen, wann er Zeit hat, wann nicht oder wann vielleicht. Ich habe mal irgendwo eine Feldauswahl (ich glaube Ajax) gesehen, was wenn man drauf klickt ein grünes Häkchen, ein orangefarbenes Rufzeichen und ein rotes Kreuz anzeigt. Sollte das jedoch zu komplex werden, würde evtl. auch ein einfaches html-Auswahlfeld genügen, wo man einfach dann sagt, macht man ein Häkchen rein, so hat man zeit, ansonsten nicht.

    In jedem Fall soll der User in diesem Kalender eingeben können wann er in dem Monat Zeit hat und wann nicht. Es soll also eine Art Termin finde Script werden. (ähnlich wie Doodle) Alle User tragen also in ihrem Kalender ein wann sie in dem ausgewählten Monat Zeit haben. Auf einer Seite soll dann angezeigt werden, bei welchen Termin die meisten bzw. eine gewisse Mindestteilnehmerzahl Zeit hat. Es soll immer ein Termin pro Monat (oder einstellbar) gefunden werden.
    Am besten wäre es noch, wenn alle User 2 Woche (einstellbar) vorher eine eMail mit dem möglichen Termin bekommen und über einen Link in der eMail nochmals bestätigen das Sie verbindlichen Kommen bzw. Zeit haben und am Termin teilnehmen. Oder ich habe mir überlegt, ob es nicht vielleicht besser wäre, wenn man einfach davon ausgeht das sie zeit haben und sie in der eMail die Möglichkeit bekommen, noch X Tage vorher abzusagen. Was meint ihr?
    Vielleicht sollte auch noch eine Info angezeigt werden, wenn der User auf der Seite ist. "XX.XX.XXXX wäre der nächste Termin. Du hast dich angemeldet. Kommst du jetzt verbindlich? ()ja ()nein"

    Wenn der Termin steht und die User sich verbindlich angemeldet hat, soll dieser Termin nochmal irgendwo in einer Datenbank gespeichert werden. (im richtigen Terminkalender)

    Die ID des Users habe ich.
    Jetzt ist die Frage, wie fange ich an?
    Ich würde gerne, dass der User ganz einfach, sagen wir, den Monatskalender sieht und schnell anklicken kann, hab zeit - hab keine zeit (oder eben Vielleicht (je nachdem wieviele da Zeit haben). Dann soll er auf speichern klicken, wobei ich mal gesehen habe, dass es auch schon ohne den Speicherbutton geht. (glaube auch wieder Ajax)

    Meine Frage ist jetzt, wie man sowas am besten hin bekommt bzw. anfängt.
    Hierzu habe ich jetzt einige Fragen bzw. Überlegungen.
    Also um genau zu sein, wie kann man mehrere Termine am besten in eine Datenbank schreiben und auch wieder auslesen. Ich möchte das ja auch ein bisschen Serverschonend machen.
    Meine erste Idee war, ich erstelle eine Tabelle 2010 und dort erstelle ich dann Tabellenspalten -> ID,01.01. bis 31.12
    Aber ich glaube nicht, dass man das so machen sollte.

    Ich weiß einfach nicht wie man am besten viele Datumsangaben in eine Datenbank speichert. Und wie bekomme ich das hin, dass das vernünftig funktioniert, den der User würde ja nicht nur in einem Monat anklicken, wann er Zeit hat, sondern für mehrere. Und wenn der Monatskalender angezeigt würde, würde der User ja dann gleichzeitig mehrere Tage auswählen und diese müßten ja dann auf einmal gespeichert werden. Nur wie speichert man diese Daten am besten und übersichtlichsten. Zudem müßten ja dann auch wieder alte Datumsangaben gelöscht werden, wenn die Termine älter sind als das aktuelle Datum, da diese ja dann hinfällig sind.
    Deswegen benötige ich hier Eure Hilfe.

    Kann mir da evtl. jemand helfen und mir erklären wie ich am besten Anfange.
    Vielleicht kennt auch jemand ein paar Hilfreiche Tutorials oder Seiten.

    Ich würde mich sehr über antworten freuen.

    Gruss
    Dj

  • #2
    Keiner eine Idee?

    Ok, vielleicht sollte ich die Frage besser stellen.
    Was meint ihr? Wie kann man am besten Termine in einer Datenbank schreiben? Speichert man alle Termine eines Datums (Also Beispiel: User, Datum1Datum2Datum3usw.) in einer Zelle oder sollte man lieber pro Datum eine Zelle nehmen (also: User,Datum1 - neuer Eintrag - User,Datum2, usw.)?

    Wenn man lieber pro Datum eine Zelle nehmen sollte.
    Wie bekomme ich die Daten in die Datenbank? ich stelle mir das ja so vor. Es gibt ein Kalender und in diesem Kalender befinden sich eben Auswahlfelder. Wie bekommt man das einfach hin, dass das Script einfach erkennt, welche Tage angeklickt sind und wie schreibe ich diese dann in die Datenbank.
    Ist die Variante dann auch Serverschonend? Ich mein ja nur, da ja auch andere die Tage eingeben und diese ganzen Daten müssen ja miteinander verglichen werden.


    Ich würde mich echt freuen, wenn sich hier jemand findet, der mir einige brauchbare Hilfen mit auf dem Weg gibt.

    Gruss
    Dj

    P.S.: Ich habe mal irgendwann, irgendwo ein Script gesehen, welches einen Monatskalender anzeigt. Wenn man auf einen Tag, so hat er rechts daneben das Datum in einem Textarea ausgegeben. Hat jemand vielleicht so was schon mal gesehen? Ich mein, dass würde mir ja evtl. etwas Arbeit abnehmen? Oder?

    Kommentar


    • #3
      Hallo,

      was verstehst du unter einer Zelle? Einen Termin speichert man in einer DB üblicherweise in einer Tabelle mit den Spalten id, start, ende, ... Die Zuordnung zu einem Benutzer sollte über eine n:m-Relation erfolgen, damit mehrere Benutzer denselben Termin wahrnehmen können, ein Benutzer aber auch mehrere Termine haben kann. Hast du dich schonmal mit DB-Design und Normalformen beschäftigt?

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Wenn ich ehrlich bin, habe ich mir das leichter vorgestellt.

        Eigentlich war mein Plan:
        - Ich erstelle ein Monatskalender, entweder wo Auswahlfelder in den Tagen sind oder aber ein Kalender, wenn man auf einen Tag klickt, dann schreibt er die ausgewählten Tage in eine Textarea.
        - Dann erstelle ich eine Datenbank-Tabelle (ID|UID|DATE|WERT oder aber ID|UID|MONTH|DAY|WERT oder DATE|WERT|UIDs <- WAS MEINT IHR???)
        - Bei Klick auf Speichern, soll er nun bzw. sollte er nun die ausgewählten Tage in die Datenbank schreiben.
        - Dann vergleiche ich die Datenbank, wo am meisten Übereinstimmungen bei den Tagen mit einem gewissen Wert sind und gebe diesen Wert aus.

        html und php sind eigentlich nicht das Problem.
        Aber mit Datenbanken habe ich mich ehrlich gesagt noch nicht wirklich beschäftigt. Bis jetzt brauchte ich auch immer nur erweitern oder so.

        Kommentar


        • #5
          Ich weiß jetzt nicht, was ich dir konkret raten könnte, außer dich dann doch mal mit Datenbanken zu beschäftigen. Wenn du dir die Wikipediaseite zu den Normalformen durcharbeitest, hast du schon mal eine schöne und mit vielen Beispielen gespickte Grundlage. Dann solltest du dir die Terminologie ansehen, damit man als Helfer genau weiß, was du meinst, wenn du ggf. wieder hier nachfragst.

          Je konkreter und abgegrenzter die Frage, desto schneller die Hilfe.

          Viel Erfolg!

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Um mein Ziel zu erreichen bräuchte ich eigentlich nur Hilfe bei den Punkten:
            - Wie strukturiere ich die DB-Tabelle am besten? Ich muss ja pro User wissen, an welchen Tagen er Zeit hat und da ist eben meine Frage, wie ich diese Tage am besten speichere, so dass ein ändern gut und einfach möglich ist.

            - Wie speichere ich die Termine (sind ja in der Regel immer mehrere) gleichzeitig in die Datenbank?
            Was ich dann eben noch nicht so raus habe ist dann die Verarbeitung, die ich am besten mehrere Daten in die Datenbank speichere. Hier muss natürlich erst einmal die erste Frage beantwortet werden.

            Kommentar


            • #7
              Wie kommst du aber darauf, dass du dafür nur eine Tabelle brauchst? Da fehlt es doch schon an Grundverständnis. Das musst du nachholen und das geht nicht mal eben nebenbei in einem Forum. Dafür musst du schon ein paar Tage oder Wochen einplanen, je nachdem wie gut deine allgemeine Lernkurve aussieht.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Ich würde die Tabelle so gestalten:
                ID|UID|DATE|WERT
                Falls du das Script mit dem Kalender wieder findest der die angeklickten Daten in das textarea schreibt so könntest du die einzelnen Daten mit einem Trennzeichen trennen.
                Diesen String dann mit explode in ein Array umwandeln und dann die Werte in die Tabelle schreiben.

                Das Datum mit den meisten übereinstimmungen kannst du dann über den SQL-Befehl
                Code:
                select count(*),date from TABELLE group by date;
                ermitteln.

                Kommentar


                • #9
                  AmicaNocti, vielen Dank erst einmal für deine Antwort. Es ist halt nur so, dass ich die Funktion einfach jetzt bald benötige und da es sich hierbei um ein Privates Projekt handelt, habe ich auch nicht das Geld um jemanden zu beauftragen und es würde einfach zu lange dauern, bis ich php und mysql so drauf habe wie ihr. Zudem interessiert mich php eigentlich doch sehr und es macht mir Spass solange zu tüfteln bis es funktioniert, aber das geht nur, wenn ich auch weiß das ich den richtigen weg gehe und zumindest zum Ansatz bestimmte Hilfen habe. Dafür nehme ich mir aber dann auch sehr viel Zeit, da ich tatsächlich manchmal für eine kleine Funktion zich seiten durchlese bis ich etwas verstanden habe. Ich denke so, lerne ich zwar nicht strukturiert, aber ich lerne (eben das was ich in dem Moment brauche bzw. was mich gerade am meisten interessiert)
                  Für den einen mag das sich sicher bescheuert anhören. Was ich aber absolut nicht ab kann, wenn ich nicht voran komme, also wenn etwas komplett still steht. Ich habe echt wenig Zeit für mein Projekt und deswegen hoffe ich immer, wenn ich nichts im Netz gefunden habe an Tutorials oder so, dass man mir in Foren kurz und schnell helfen kann. Naja, ich erwarte ja nicht, dass man mir hier den kompletten Code vorgibt, auch wenn ich das manchmal hoffe, da ich so wüßte das es gut programmiert wäre. Ich erhoffe mir, durch das posten in einem Forum einfache und schnelle Hilfe, jedoch kein "Lerne php", auch wenn ihr damit ja recht habt, aber sowas hilft mir in diesem Moment einfach nicht.
                  Hab halt nicht die Zeit um mich jetzt so dermaßen mit php zu beschäftigen. Wobei ich es schon cool finden würde, wenn ich so'n Crack wäre wie manche im Internet.
                  Ich hoffe, dass du mich ein bisschen verstehst. Ich bin immer echt froh, wenn Leute wie boeserfrosch mir einfach nur mal ein paar Gedankenansätze geben, oder einfach das einer sagt "Schau mal auf der Seite, da wurde mal sowas besprochen oder da wird sowas in der Art erklärt...
                  Das beste ist einfach, wenn man meine Frage einfach mal versucht zu diskutieren bzw. Teilweise zu beantworten, indem man überhaupt etwas dazu sagt.
                  boeserfrosch hat jetzt seine Meinung zu meiner ersten Frage gegeben, also wie würde er es machen. Und das finde ich klasse. Ich mein, ich will hier keine Lösung, aber jeder wird ja sagen können: "Hm, wie würde ich das machen, wenn ich ein Termin-Finde Script brauche."


                  Ich würde mich also sehr freuen, wenn hier noch ein paar sind, die einfach die Lust haben und mir genau da helfen könnten.
                  Ich werde jetzt nochmal suchen ob ich nicht irgendwo einen passenden Monatskalender finde. Vielleicht hat ja hierzu noch jemand eine Idee.

                  Kommentar


                  • #10
                    Code:
                    user
                    ----
                    id
                    first_name
                    last_name
                    ...
                    
                    
                    event
                    -----
                    id
                    title
                    start
                    end
                    ...
                    
                    
                    availability
                    ------------
                    id
                    event_fkey
                    user_fkey
                    available enum('yes','feasible','hardly','no')
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      AmicaNoctis, danke nochmal für die Antwort.
                      Ich weiß nicht ob ich das richtig sehe bzw. vermute, aber ich glaube das ist so nicht gewollt von mir.

                      Ich möchte den Tag erst mit den Usern finden, bzw. der User soll schnell und einfach in einem Kalender anklicken können an welchen Tagen er im Monat Zeit hat. Dies machen alle User. Anhang dieser Info, kann man nun den Tag anzeigen lassen, wo die meisten User gesagt haben: An den Tag kann ich.
                      Also, es soll ja ein Termin finde - Script werden und ich denke dein Beispiel (wenn ich das richtig sehe, ich weiß ja nicht) ist eher ein Teilnahme Script.
                      Ok, bei mir ist es so, dass es quasi beides sein soll. Also erst soll der Termin gefunden werden und wenn er gefunden wurde ist es auch gleichzeitig Teilnahme mit drin, da du User ja gesagt haben: Ich habe Zeit.

                      Wenn ich falsch liege, bitte sag wie du das gemeint hast.

                      Ich versuche das vielleicht nochmal verständlicher zu sagen, was ich möchte.
                      Ich möchte mich einmal im Monat oder alle 2 Monate (soll evtl. einstellbar sein) mit einer Gruppe treffen. Damit man nicht immer tausend eMails oder Telefonate führen muss, habe ich mir gedacht, ich versuche mal was zu erstellen, mit dem es einfacher geht.
                      Also wollte ich, dass die User (die bereits angemeldet sind) eintragen, wann sie Zeit haben. Wenn alle User dass machen, weiß ich eben, wann die Mehrheit Zeit hat und man kann das Treffen auf diesen Tag legen.
                      Später möchte ich noch versuchen, dass Script so zu erweitern, dass man auch angeben kann, wo wir uns treffen sollen und auch welche Uhrzeit für die Person am besten wäre. Aber eins nach dem anderen.

                      (Ich kenne, die Seite doodle.com, wo man auch termine finden kann, jedoch möchte ich etwas eigenes, auf meinen Server und in meinen Mitgliederbereich haben.)
                      Zuletzt geändert von Dj_PD; 23.04.2010, 01:12.

                      Kommentar


                      • #12
                        Okay, dann nimmst du die Tabelle event ganz weg, ersetzt die Spalte event_fkey durch ein oder zwei DATE(TIME)-Spalten und dann passt es
                        Zuletzt geändert von AmicaNoctis; 23.04.2010, 01:29.
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar

                        Lädt...
                        X