anfänger-problem kalender-monate verlinken

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

  • #16
    nee, das ist schon richtig, das hat nur was mit der Farbe zu tun.

    Dein Link wird ja richtig gebildet. Das muss schon an der termindetail liegen

    Kommentar


    • #17
      PHP-Code:
      <?
      // termindetail.php
      mysql_connect("localhost", "", "") or die("could not connect"); // Connect zur DB
      mysql_select_db("test") or die("db falsch"); // Datenbank auswählen

      if (!isset($year) || !isset($month) || !isset($day)) {
          die ("Variablen sind nicht gesetzt");
      }
          
      if (strlen($month) == 1) {
          $month = "0".$month;
      }

      $varDat = "$year"."-"."$month"."-"."$day";

      $select = "SELECT * FROM termine WHERE DATE_FORMAT(termStart,'%Y-%m-%d') = '$varDat' ORDER BY termStart";

      $found = mysql_query($select);
          
      while ($row = mysql_fetch_array($found)) {
          print "Termin: $row[termStart] bis $row[termEnd]<br>\n";
          print "&nbsp;&nbsp;&nbsp;<b>$row[termSubject]</b><br>\n";
          print "&nbsp;&nbsp;&nbsp;$row[termDetail]<br>\n";
      }
          
      mysql_free_result($found);
      ?>

      Kommentar


      • #18
        vielen dank für deine hilfe, du bist der beste!!!

        $_REQUEST[year], $_REQUEST[month], $_REQUEST[day], $_GET[year], $_GET[month] und $_GET[day] haben bei mir tatsächlich nicht funktioniert, mit $year, $month und $day gibt es keine probleme mehr...

        der kalender ist jetzt fast perfekt, ich habe nur einen schönheitsfehler entdeckt:

        wenn z.b. wie im august 2003 der letzte des monats ein sonntag ist, wird in der tabelle eine reihe zuviel angezeigt, man sieht sie zusammengequetscht über der navigation. wäre nett, wenn du dir das problem mal ansehen könntest:

        http://localhost/kalender.php?year=2003&month=8&day=1

        ich habe mir zur fehlersuche einfach den quelltext dieser url direkt im browser anzeigen lassen und ihn in dreamweaver reingeladen. da konnte ich dann auch erkennen, was das problem verursacht: irgendwo wird <tr> zu oft ausgeführt. ich finde mich aber im php-code nicht gut genug zurecht, um das problem selbst lösen zu können. man müsste sicher "nur" irgendwo eine if-schleife einbauen, die sagt, dass, wenn der letzte des monats ein sonntag ist, kein <tr> mehr eingefügt wird...

        wäre echt riesig, wenn du (oder jmd. anders) mir nochmal helfen könntest (könnte)!

        grüße, 555*

        Kommentar


        • #19
          Dann haste echt noch so ne uralt version drauf? Wie man da drauf kommen sollte...

          wenn du den code mal postest, kann man dir helfen.

          Kommentar


          • #20
            Wird ja immer fescher:
            PHP-Code:
            <style type="text/css">
            TD, TH {
                 FONT-FAMILY: Arial, Verdana, Trebuchet MS, Helvetica;
                 FONT-SIZE: 8pt;
                 FONT-WEIGHT: none;
                 COLOR: black;
                BACKGROUND-COLOR: #FBFBFD;
            }

            .alt {BACKGROUND-COLOR: #E7E7F1;}
            .basic {COLOR: white; BACKGROUND-COLOR: #606096;}
            .top {COLOR: black; BACKGROUND-COLOR: #A3A3CB;}
            .white {BACKGROUND-COLOR: #FFFFFF;}
            .blank {BACKGROUND-COLOR: white;}

            A:link, A:visited, A:active {
                COLOR: #000020;
                TEXT-DECORATION: underline;
            }

            A:hover {COLOR: #FF4400;}
            </style>

            <?
            //    Get todays date if we didn't get one
            $tag[] = "00"; 
            $subj[] = ""; 
            if (($year == "") || ($month == "") || ($day == "")) {
                $year = date("Y");
                $month = date("n");
                $day = date("d");
            }

            mysql_connect("localhost", "", "") or die("could not connect"); // Connect zur DB
            mysql_select_db("test"); // Datenbank auswählen

            $select = "SELECT DATE_FORMAT(termStart,'%d') as SqlTag, termSubject
                                FROM termine
                                WHERE
                                    DATE_FORMAT(termStart,'%Y') = $year AND
                                    DATE_FORMAT(termStart,'%m') = $month
                                ORDER BY termStart
                                ";
            $found = mysql_query($select);
                
            while ($row = mysql_fetch_array($found)) {
                $tag[] = $row[SqlTag];
                $subj[] = $row[termSubject];
            }
                
            mysql_free_result($found);

            $link_url    = "";
            $selector    = 1;
            $highlight   = 1;

            //    Get info for Calendar generation
            $daysmonth = date("t",mktime(0,0,0,$month,$day,$year));
            $firstday = date("w",mktime(0,0,0,$month,1,$year));
            $padmonth = date("m",mktime(0,0,0,$month,$day,$year));
            $padday = date("d",mktime(0,0,0,$month,$day,$year));

            //    Customize according to $calendar_format
            if ($firstday == 0) {
                $firstday = 7;
            }
            $date = "$padday.$padmonth.$year";
            $dayletter = array(1 => "Mo", 2 => "Di", 3 => "Mi", 4 => "Do", 5 => "Fr", 6 => "Sa", 7 => "So");
            $daymod = 0;
            ?>
            <table border="0" cellspacing="0" cellpadding="0" width="150">
                <tr>
                <td class=basic>
                <table width="150" border="0" cellspacing="1" cellpadding="3">
                    <tr>
                     <th class=top colspan=7> <font color="#000000"><b><? echo $date;?></b></font></th>
                    </tr>
                    <tr>
                     <?
                      for($daynumber = 1; $daynumber < 8; $daynumber++) {
                         echo "<td><font size='1'>$dayletter[$daynumber]</font></td>";
                      }
                      ?>
                    </tr>
                    <tr>
            <?
            for ($i = 1; $i < $daysmonth + $firstday + $daymod; $i++) {
                $a = $i - $firstday + 1 - $daymod;
                $day = $i - $firstday + 1 - $daymod;
                if (strlen($a) == 1) {
                    $a = "0$a";
                }
                if (($i < $firstday) || ($a == "00")) { 
                    $text = "";
                    $colour = "white";
                    $size = 10;
                    echo "<td class=white> </td>";
                    $k++;
                } else {
                    $index = 0;
                    $title = "";
                    foreach ($tag as $padday) {
                        if (($padday == $a) && ($highlight)) {
                            $title = $subj[$index];
                            if (($i%7) == $daymod) {
                                $text = "$a";
                                $colour = "class=top";
                                break;
                            } else {
                                $text = "$a";
                                $colour = "class=top";
                                $size = 12;
                                break;
                            }
                        } else {
                            if (($i%7) == $daymod) {
                                $text = "$a";
                                $colour = "class=alt";
                                $size = 10;
                            } else {
                                $text = "$a";
                                $colour = "";
                                $size = 10;
                            }
                        }
                        $index++;
                    }
                    if (eregi("class=top",$colour)) {
                        echo "<td $colour><font size='1'><a href='termindetail.php?year=$year&month=$month&day=$text' title='$title'>$text</a></font></td>"; // Hier der Link
                    } else {
                        echo "<td $colour><font size='1'>$text</font></td>";
                    }        
                }

                if (($i%7) == 0) {
                    echo "</TR><TR>\n";
                }
            }
             
            if (($i%7) != 1) {
                echo "</TD>\n";
            }
                
            $colspan = 36 - $i;

            if ($colspan < 0) {
                $colspan = $colspan + 7;
            }

            for ($i = 0; $i < $colspan; $i++) {
                echo "<td class=white> </td>";
            }

            if ($colspan !=0 ) {
               echo "</tr><tr>";
            }

            // Print the selector
            if ($selector) {
                if ($month == 1) {
                    $pyear = $year - 1;
                    $pmonth = 12;
                } else {
                    $pyear = $year;
                    $pmonth = $month - 1;
                }

                if ($month == 12) {
                    $nyear = $year + 1;
                    $nmonth = 1;
                } else {
                    $nyear = $year;
                    $nmonth = $month + 1;
                }
                
                $year = date("Y");
                $month = date("n");
                $day = date("j");
                echo "<TD colspan=7 class=white><center><FONT SIZE=-2><A HREF='$link_url?year=$pyear&month=$pmonth&day=1'>zurück</A> | <A HREF='$link_url?year=$year&month=$month&day=$day'>heute</A> | <A HREF='$link_url?year=$nyear&month=$nmonth&day=1'>nächstes</A></FONT></TD>\n";
            }
            ?>
            </tr>
            </table>

            Kommentar


            • #21
              vielen dank, echt!
              du bist der beste, ohne dich hätte ich das nie geschafft...
              ach ja: ich habe eine so alte php-version, weil die mit phptriad
              installiert wurde... hätte nie gedacht, dass ich deshalb ein problem bekommen würde. aber hinterher ist man immer schlauer
              grüße,
              555*soul

              Kommentar


              • #22
                Welcher Dummbatzen hat das den in dieses Forum (Appz und Script Gesuche) verschoben ... "Projekthilfe" hätte ich ja noch verstehen könne ... ah ... ich seh' schon ... dumme Frage eigentlich ... !
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #23
                  @goth: Hielt ich für ne gute Idee, schließlich war hier ja der Code gefordert und nicht ne Antwort auf ne konkrete Hilfe. Die Projekthilfen guckt sowieso niemand an.

                  *VERSCHIEB* zur PHP-Forum

                  Kommentar


                  • #24
                    Ob sowas nicht voll wurscht is? goth hatte sichtlich schlechte Laune. Was gibt es dafür Würdigeres als sein eigener smilie
                    *g*

                    Kommentar


                    • #25
                      hi, ich bins nochmal!
                      habe beim formatieren des kalenders noch 2 "kleine" probleme entdeckt, die ich selbst nicht richtig auf die reihe bekomme:

                      1. die einzelnen zellen in der tabelle sind unterschiedlich groß, v.a. die zellen unter montag knallen richtig raus. habe es schon über class, width, height usw. versucht, teilweise auch mit erfolg, aber dann war wieder irgendwas anderes verschoben... wäre wirklich nett, wenn mir nochmal jmd. helfen könnte! am besten wäre für jede zelle height=21 und width=21, ich weiss aber nicht, ob "mo" dann wegen der schriftgröße noch reinpasst... notfalls 23x23.

                      2. ich würde aus usability-gründen gerne die navigation aus der untersten zelle in die oberste zelle verschieben (wo ind er jetzigen version noch das aktuelle datum steht). das aktuelle datum müsste dann in die zelle unter dem kalender. grund: die zelle unten ist je nach monat manchmal weiter oben bzw. unten und dem user wird es unnötig schwer gemacht, z.b. 10 monate weiter zu klicken.

                      vielen dank schon mal,
                      555*

                      hier die aktuelle version meines codes:
                      <style type="text/css">
                      TD, TH {
                      FONT-FAMILY: Arial, Verdana, Trebuchet MS, Helvetica;
                      FONT-SIZE: 8pt;
                      FONT-WEIGHT: none;
                      COLOR: black;
                      BACKGROUND-COLOR: #FBFBFD;
                      }

                      .alt {BACKGROUND-COLOR: #FFFFFF;}
                      .basic {COLOR: white; BACKGROUND-COLOR: #006633;}
                      .top {COLOR: white; BACKGROUND-COLOR: #669966;}
                      .white {BACKGROUND-COLOR: #FFFFFF;}
                      .blank {BACKGROUND-COLOR: white;}

                      A:link, A:visited, A:active {
                      COLOR: white;
                      FONT-WEIGHT: bolder;
                      TEXT-DECORATION: none;
                      }

                      A:hover {COLOR: black;}
                      </style>

                      <?
                      ini_set ("error_reporting","E_ALL & ~E_NOTICE");

                      // Get todays date if we didn't get one
                      $tag[] = "00";
                      $subj[] = "";
                      if (($year == "") || ($month == "") || ($day == "")) {
                      $year = date("Y");
                      $month = date("n");
                      $day = date("d");
                      }

                      mysql_connect("localhost", "", "") or die("could not connect"); // Connect zur DB
                      mysql_select_db("Buchungen_Seegatterl"); // Datenbank auswählen

                      $select = "SELECT DATE_FORMAT(termStart,'%d') as SqlTag, termSubject
                      FROM termine
                      WHERE
                      DATE_FORMAT(termStart,'%Y') = $year AND
                      DATE_FORMAT(termStart,'%m') = $month
                      ORDER BY termStart
                      ";
                      $found = mysql_query($select);

                      while ($row = mysql_fetch_array($found)) {
                      $tag[] = $row[SqlTag];
                      $subj[] = $row[termSubject];
                      }

                      mysql_free_result($found);

                      $link_url = "";
                      $selector = 1;
                      $highlight = 1;

                      // Get info for Calendar generation
                      $daysmonth = date("t",mktime(0,0,0,$month,$day,$year));
                      $firstday = date("w",mktime(0,0,0,$month,1,$year));
                      $padmonth = date("m",mktime(0,0,0,$month,$day,$year));
                      $padday = date("d",mktime(0,0,0,$month,$day,$year));
                      $deutsch = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
                      $monat = $deutsch[$padmonth -1];

                      // Customize according to $calendar_format
                      if ($firstday == 0) {
                      $firstday = 7;
                      }
                      $date = "$monat $year";
                      $dayletter = array(1 => "Mo", 2 => "Di", 3 => "Mi", 4 => "Do", 5 => "Fr", 6 => "Sa", 7 => "So");
                      $daymod = 0;
                      ?>
                      <table border="0" cellspacing="0" cellpadding="0" width="150">
                      <tr>
                      <td class=basic>
                      <table width="150" border="0" cellspacing="1" cellpadding="3">
                      <tr>
                      <th class=top colspan=7> <font color="#FFFFFF"><b><? echo $date;?></b></font></th>
                      </tr>
                      <tr>
                      <?
                      for($daynumber = 1; $daynumber < 8; $daynumber++) {
                      echo "<td><font size='1'>$dayletter[$daynumber]</font></td>";
                      }
                      ?>
                      </tr>
                      <tr>
                      <?
                      for ($i = 1; $i < $daysmonth + $firstday + $daymod; $i++) {
                      $a = $i - $firstday + 1 - $daymod;
                      $day = $i - $firstday + 1 - $daymod;
                      if (strlen($a) == 1) {
                      $a = "0$a";
                      }
                      if (($i < $firstday) || ($a == "00")) {
                      $text = "";
                      $colour = "white";
                      $size = 10;
                      echo "<td class=white> </td>";
                      $k++;
                      } else {
                      $index = 0;
                      $title = "";
                      foreach ($tag as $padday) {
                      if (($padday == $a) && ($highlight)) {
                      $title = $subj[$index];
                      if (($i%7) == $daymod) {
                      $text = "$a";
                      $colour = "class=top";
                      break;
                      } else {
                      $text = "$a";
                      $colour = "class=top";
                      $size = 12;
                      break;
                      }
                      } else {
                      if (($i%7) == $daymod) {
                      $text = "$a";
                      $colour = "class=alt";
                      $size = 10;
                      } else {
                      $text = "$a";
                      $colour = "";
                      $size = 10;
                      }
                      }
                      $index++;
                      }
                      if (eregi("class=top",$colour)) {
                      echo "<td $colour><font size='1'><a href='TerminDetail.php?year=$year&month=$month&day=$text' title='$title'>$text</a></font></td>"; // Hier der Link
                      } else {
                      echo "<td $colour><font size='1'>$text</font></td>";
                      }
                      }

                      if (($i%7) == 0) {
                      echo "</TR><TR>\n";
                      }
                      }

                      if (($i%7) != 1) {
                      echo "</TD>\n";
                      }

                      $colspan = 36 - $i;

                      if ($colspan < 0) {
                      $colspan = $colspan + 7;
                      }

                      for ($i = 0; $i < $colspan; $i++) {
                      echo "<td class=white> </td>";
                      }

                      if ($colspan !=0 ) {
                      echo "</tr><tr>";
                      }

                      // Print the selector
                      if ($selector) {
                      if ($month == 1) {
                      $pyear = $year - 1;
                      $pmonth = 12;
                      } else {
                      $pyear = $year;
                      $pmonth = $month - 1;
                      }

                      if ($month == 12) {
                      $nyear = $year + 1;
                      $nmonth = 1;
                      } else {
                      $nyear = $year;
                      $nmonth = $month + 1;
                      }

                      $year = date("Y");
                      $month = date("n");
                      $day = date("j");

                      echo "<TD colspan=7 class=top><center><FONT SIZE=-2><A HREF='$link_url?year=$pyear&month=$pmonth&day=1'><<</A> | <A HREF='$link_url?year=$year&month=$month&day=$day'>heute</A> | <A HREF='$link_url?year=$nyear&month=$nmonth&day=1'>>></A></FONT></TD>\n";
                      }
                      ?>
                      </tr>
                      </table>
                      Zuletzt geändert von 555*soul; 17.12.2002, 10:37.

                      Kommentar

                      Lädt...
                      X