Denkanstoss für Kalenderscript > Tagesansicht

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

  • Denkanstoss für Kalenderscript > Tagesansicht

    Hallo Ihr kreativen Köpfe

    Bräuchte mal wieder Euren Rat!
    Bin gerade dabei ein Kalenderscript zu modifizieren. Die Ansicht des Monats klappt soweit, aber bei der Tagesansicht hab ich noch keinen Schimmer. Hier also die Probs:

    > Würdet Ihr die Tagesansicht mit Arrays lösen ( 0-24 Uhr ) oder was statisches machen.

    > Bei den Termindaten habe ich Anfang und Ende als DATETIME... Format drin. Wie muß ich den bei der SQL-Abfrage vorgehen das es mir die Termine dann in der jeweiligen Stundenspalte anzeigt ?

    > Wie ist es zu realisieren, das ich einen Termin der über drei Stunden geht irgendwie auch so grafisch anzeige ?

    So das wars erst mal

    Ich bedanke mich, wie immer, schon im Voraus für Eure Mühe!

    Grüße
    Holger

  • #2
    1> Würdet Ihr die Tagesansicht mit Arrays lösen ( 0-24 Uhr ) oder was statisches machen.


    2> Bei den Termindaten habe ich Anfang und Ende als DATETIME... Format drin. Wie muß ich den bei der SQL-Abfrage vorgehen das es mir die Termine dann in der jeweiligen Stundenspalte anzeigt ?



    3> Wie ist es zu realisieren, das ich einen Termin der über drei Stunden geht irgendwie auch so grafisch anzeige ?


    Ich nehme an du fragst die db ab nach den terminen an einem bestimmten tag.

    select termine where datetimeindb = kalendertagdate


    Dann würde ich die db_result in ein array schreiben:

    for ($i=0, $i<=24 ;i++){


    array tagesansicht [uhrzeit -->$i
    termin --> wenn nicht vorhanden null eintragen, ansonsten termin]
    }

    Dann würde ich eine abfrage bei der erzeugung der tabelle machen mit folgender regel:
    wenn termin != null dann tabellen zelle blau färben ansonsten weiss färben.

    zusammenhängende termine sind dann automatisch blau.

    Hoffe das hat dir geholfen ...

    Kommentar


    • #3
      HI,

      also so in ganzer Konsequenzz kann ich dem allen nicht folgen

      > Wie funzt den das mit dem Array bzwwas bedeutet das hier --> im Array?

      > Die Tabelle kann ich ja dann statisch erstellen, oder ? Sie wird ja nun mit den enstprechenden Werten aus der Tabelle gefüllt.

      Kommentar


      • #4
        Also,

        was ich meine:

        du holst dir die termine eines tages aus der db per sql request.
        du schreibst die termine in ein array und wandelst sie per date() in die tagesstunde um/0 - 24
        dann erzeugst du ein array über 24 stunden mit 24 null einträgen
        ausser an der stelle, an der ein termin vorliegt - dort schreibst du den terminnamen rein
        dann machst du eine schleife, mit der du eine tabelle baust, die überall wo in deinem 24 stunden array null ist einen weissen hintergrund erzeugt und dort wo nicht null einen gelben hintergrund und den namen des termins.

        Hoffentlich ist es jetz klarer ...

        Kommentar


        • #5
          hi,

          die Probleme gehen schon los.

          BIn gerade daran meine SQL-Abfrage für das Filtern eines Tages zu schreiben. Nun stehe ich vor dem Problem, daß ich aus meiner Monatsansicht drei Werte übergeben bekomme ( Tag,Monat und Jahr ). So und nun will ich ja in meiner DB nach passenden Terminen suchen. In der DB sind die Termine aber im DATETIME Format abgespeichert. Wie kann ich jetzt den Tag aus dieser DB auslesen ?? Mit SELECT * FROM tabelle WHERE datumzeit ='$jahr-$monat-$tag' gehts nicht
          Jemand ne Idee??

          Kommentar


          • #6
            Entweder mit nem LIKE, was aber unschön wäre, oder aber

            WHERE MONTH(termin) = '$monat'

            Das ist wohl die bessere Version.

            Kommentar


            • #7
              mmmmh,

              da ich ja nach dem Tag schauen will hab ich deine Anweisung mal folgendermaßen verändert :

              PHP-Code:

              $query_tag 
              "SELECT * FROM hvo_cal_event WHERE DAY(cal_event_begin) ='$day'"
              Funzt aber leider nicht
              Ne Idee

              Kommentar


              • #8
                eigentlich richtig:

                PHP-Code:
                WHERE DAY(cal_event_begin) ='$day'
                AND MONTH(cal_event_begin) ='$month'
                AND YEAR(cal_event_begin) ='$year' 

                Kommentar


                • #9
                  Oben stand noch, dass das feld datumzeit heißt, und jetzt event_begin

                  Kommentar


                  • #10
                    HI,

                    das mit dem DatumZeit war ja nur als Beispiel gedacht, sorry

                    Mit der neuen Anweisung bekomme ich aber eine Fehlermeldung ( not a valid MySQL result resource ... ). Hier mal die SQL-Abfrage :

                    PHP-Code:

                    $query_tag 
                    "SELECT * FROM hvo_cal_event WHERE DAY(cal_event_begin) ='$day'
                                                              AND MONTH(cal_event_begin) ='
                    $month'
                                                              AND YEAR(cal_event_begin) ='
                    $year'";

                    $result_tag mysql_query($query_tag);

                    while (
                    $row mysql_fetch_array($result_tag)) {
                    $cal_event_begin=$row['cal_event_begin'];
                    $cal_text=$row['cal_text'];


                    Hab ich was überlesen ?

                    Kommentar


                    • #11
                      sieht eigentlich korrekt aus. aber ich habs selbst moch nicht mit 3 Where Sachen gemacht. Aber mit Monat hat das bei mir super geklappt.

                      *ratlos*

                      Kommentar


                      • #12
                        Naja, Sinn macht das mit dem Abfragen aller drei Parameter ja schon, denn der Monat oder der jeilige Tag sind ja keine eindeutige Kennung, Deswegen sollte ja schon alle drei auch abgefragt werden.

                        Vielleicht hat sonst jemand noch eine Idee

                        Kommentar


                        • #13
                          Also prinzipiell gehen drei Bedingungen schon, hab zumindest noch nichts gegenteiliges gehört.

                          Wie wäre es, wenn du einfach das Datetime in 2 Spalten aufteilst?
                          Eine Spalte 'Datum' und die andere 'Zeit'.
                          Dann geht auch die Abfrage
                          SELECT * FROM table WHERE Datum='$year-$month-$day';

                          Ich weiss ja nicht, ob dein Fehler damit zusammenhängt, dass zu datetime eben nicht nur das Datum sondern auch die Zeit gehört.

                          Vielleicht habt ihr das ja aber schon besprochen, denn was ihr da in den letzten Posts machen wolltet hab ich noch nie gesehen, und deshalb auch nicht verstanden.

                          Kommentar


                          • #14
                            Hi,

                            an so eine Lösung hatte ich auch schon gedacht. Werd ich wohl auch so machen. Dann sollte es ja eigentlich funktionieren.

                            Bei Problemen ( und die kommen bestimmt ) steht hier eh wieder ein Posting

                            Gruß
                            Holger

                            Kommentar

                            Lädt...
                            X