tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
1141
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    Hallo leute,

    hab mir mal ein Kalender Script zusammengeschnippelt und es funktioniert soweit alles ganz gut.

    hier der code
    PHP-Code:
    <html>
    <head>
    <title>PHP Calendar</title>
    <style type="text/css">
    <!--
    .table.calendar {border: 1px solid #000000; border-collapse: collapse; color: #000000; background: #FFFFFF; }
    .td.today { border: 1px solid white; color: #000000; background: #EFEFEF; font-weight: bold;}
    .td.monthdays {border: 1px solid #434470; color: #000000; background: #FFFFFFF; }
    .td.nonmonthdays { border: 1px solid white; color: #000000; background: #EFEFEF;}
    .style1 {
        color: #FFFFFF;
        font-weight: bold;
        bgcolor: #FF3333
    }
    .style2 {
        font-weight: bold;
        bgcolor: #FF3333
    }
    -->
    </style>
    <body>

    <?php
    error_reporting
    ('0');
    ini_set('display_errors''0');
    // Gather variables from
    // user input and break them
    // down for usage in our script

    if(!isset($_REQUEST['date'])){
       
    $date mktime(0,0,0,date('m'), date('d'), date('Y'));
    } else {
       
    $date $_REQUEST['date'];
    }

    $day date('d'$date);
    $month date('m'$date);
    $year date('Y'$date);

    // Get the first day of the month
    $month_start mktime(0,0,0,$month1$year);

    // Get friendly month name
    $month_names = array(1=>"Januar",
                      
    2=>"Februar",
                      
    3=>"M&auml;rz",
                      
    4=>"April",
                      
    5=>"Mai",
                      
    6=>"Juni",
                      
    7=>"Juli",
                      
    8=>"August",
                      
    9=>"September",
                      
    10=>"Oktober",
                      
    11=>"November",
                      
    12=>"Dezember");


    $month_name date('n'$month_start);


    // Figure out which day of the week
    // the month starts on.
    $month_start_day date('D'$month_start);

    switch(
    $month_start_day){
        case 
    "Mon"$offset 0; break;
        case 
    "Tue"$offset 1; break;
        case 
    "Wed"$offset 2; break;
        case 
    "Thu"$offset 3; break;
        case 
    "Fri"$offset 4; break;
        case 
    "Sat"$offset 5; break;
        case 
    "Sun"$offset 6; break;
    }

    // determine how many days are in the last month.
    if($month == 1){
       
    $num_days_last cal_days_in_month(012, ($year -1));
    } else {
       
    $num_days_last cal_days_in_month(0, ($month -1), $year);
    }
    // determine how many days are in the current month.
    $num_days_current cal_days_in_month(0$month$year);

    // Build an array for the current days
    // in the month
    for($i 1$i <= $num_days_current$i++){
        
    $num_days_array[] = $i;
    }

    // Build an array for the number of days
    // in last month
    for($i 1$i <= $num_days_last$i++){
        
    $num_days_last_array[] = $i;
    }

    // If the $offset from the starting day of the
    // week happens to be Sunday, $offset would be 0,
    // so don't need an offset correction.

    if($offset 0){
        
    $offset_correction array_slice($num_days_last_array, -$offset$offset);
        
    $new_count array_merge($offset_correction$num_days_array);
        
    $offset_count count($offset_correction);
    }

    // The else statement is to prevent building the $offset array.
    else {
        
    $offset_count 0;
        
    $new_count $num_days_array;
    }

    // count how many days we have with the two
    // previous arrays merged together
    $current_num count($new_count);

    // Since we will have 5 HTML table rows (TR)
    // with 7 table data entries (TD)
    // we need to fill in 35 TDs
    // so, we will have to figure out
    // how many days to appened to the end
    // of the final array to make it 35 days.


    if($current_num 35){
       
    $num_weeks 6;
       
    $outset = (42 $current_num);
    } elseif(
    $current_num 35){
       
    $num_weeks 5;
       
    $outset = (35 $current_num);
    }
    if(
    $current_num == 35){
       
    $num_weeks 5;
       
    $outset 0;
    }
    // Outset Correction
    for($i 1$i <= $outset$i++){
       
    $new_count[] = $i;
    }

    // Now let's "chunk" the $all_days array
    // into weeks. Each week has 7 days
    // so we will array_chunk it into 7 days.
    $weeks array_chunk($new_count7);


    // Build Previous and Next Links
    $previous_link "<a href=\"".$_SERVER['PHP_SELF']."?date=";
    if(
    $month == 1){
       
    $previous_link .= mktime(0,0,0,12,$day,($year -1));
    } else {
       
    $previous_link .= mktime(0,0,0,($month -1),$day,$year);
    }
    $previous_link .= "\"><<<</a>";

    $next_link "<a href=\"".$_SERVER['PHP_SELF']."?date=";
    if(
    $month == 12){
       
    $next_link .= mktime(0,0,0,1,$day,($year 1));
    } else {
       
    $next_link .= mktime(0,0,0,($month +1),$day,$year);
    }
    $next_link .= "\">>>></a>";

    // Build the heading portion of the calendar table
    echo "<table border=\"3\" cellpadding=\"3\" cellspacing=\"3\" class=\"calendar\" align=\"center\" table width=\"416\" height=\"353\">\n".
         
    "<tr>\n".
         
    "<td colspan=\"7\" bgcolor=\"#FF3366\">\n".
         
    "<table border=\"3\" cellpadding=\"3\" cellspacing=\"3\" table align=\"center\">\n".
         
    "<tr>\n".
         
    "<td colspan=\"2\" width=\"75\" align=\"left\">$previous_link</td>\n".
         
    "<td colspan=\"3\" width=\"150\" align=\"center\"><span class=\"style1\">$month_names[$month_name] $year</span></td>\n".
         
    "<td colspan=\"2\" width=\"75\" align=\"right\">$next_link</td>\n".
         
    "</tr>\n".
         
    "</table>\n".
         
    "</td>\n".
         
    "<tr>\n".
         
    "<td><strong>Mo</strong></td><td><strong>Di</strong></td><td><strong>Mi</strong></td><td><strong>Do</strong></td><td><strong>Fr</strong></td><td><strong>Sa</strong></td><td><strong>So</strong></td>\n".
         
    "</tr>\n";

    // Now we break each key of the array 
    // into a week and create a new table row for each
    // week with the days of that week in the table data

    $i 0;
    foreach(
    $weeks AS $week){
           echo 
    "<tr>\n";
           foreach(
    $week as $d){
             if(
    $i $offset_count){
                 
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month -1,$d,$year)."\">$d</a>";
                 echo 
    "<td class=\"nonmonthdays\" bgcolor=\"#CCCCCC\">$day_link</td>\n";
             }
             if((
    $i >= $offset_count) && ($i < ($num_weeks 7) - $outset)){
                
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month,$d,$year)."\">$d</a>";
               if(
    $date == mktime(0,0,0,$month,$d,$year)){
                   echo 
    "<td class=\"today\" bgcolor=\"#FF3366\">$d</td>\n";
               } else {
                   echo 
    "<td class=\"days\">$day_link</td>\n";
               }
            } elseif((
    $outset 0)) {
                if((
    $i >= ($num_weeks 7) - $outset)){
                   
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month +1,$d,$year)."\">$d</a>";
                   echo 
    "<td class=\"nonmonthdays\" bgcolor=\"#CCCCCC\">$day_link</td>\n";
               }
            }
            
    $i++;
          }
          echo 
    "</tr>\n";   
    }

    // Close out your table and that's it!
    echo '<tr><td colspan="7" class="days"> </td></tr>';
    echo 
    '</table>';



    //Display events according to date.
    echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"300\" align=\"center\">";
    echo 
    "<tr><td align=\"center\">Events am $day_name$day $month_names[$month_name]  $year:</td></tr>";
    //Open mySQL connection
    $conn mysql_connect("localhost""root""") or die("Could not connect!");
    //Connect to database
    mysql_select_db("test") or die("Could not select database");
    //Query database
    $sql "SELECT * FROM events WHERE eventDate = FROM_UNIXTIME($date)";
    $result mysql_query($sql);

    //Fecth rows according to timestamp
    $num_rows mysql_num_rows($result);
    if(
    $num_rows == 0){
        echo 
    "<tr><td align=\"center\">Für Heute sind leider Keine Events gelistet.</td></tr>";
    }else{
        while (
    $row=mysql_fetch_array($result)){
      
    $title $row["eventTitle"];
      
    $desc $row["eventDesc"];
      
    $start $row['eventStartTime'];
      
    $end $row['eventEndTime'];
      
    $cost $row['eventCost'];
      
    $flyer$row['flyer'];
        
      echo 
    "<tr><td><b><h2>$title</h2></b></td>";
      echo 
    "<tr><td><b>$flyer</b></td>";
      echo 
    "<tr><td>Uhrzeit: $start - $end</td></tr>";
      echo 
    "<tr><td>Eintritt: ";
          if (
    $cost 0){
        echo 
    "$$cost</td></tr>";
          } else {
        echo 
    "Free!</td></tr>";
          }
      echo 
    "<tr><td>$desc<br><br></td></tr>";
        }
    }
    echo 
    "</table>";

      
    ?>
    </body> 
    </html>
    um nun events hinzufügen zu können, habe ich folgende html erstellt. (würde hier auch gerne die textfelder für das datum und die uhrzeiten durch eine auflistung ersetzen. Weiss nur leider nicht, wie ich dann zb. die auswahl für die stunde und die minute zusammen als einzelne variable übergeben kann.)

    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <form id="form1" name="form1" method="post" action="upload.php">
      <label>Titel:
      <input type="text" name="titel" />
      <br />
      <br />
      </label>
      <label>Flyer:
      <input type="file" name="flyer"  size="40">
      </label>
      <p>
        <label>Datum
        <input type="text" name="datum" value="jjjj-mm-tt" />
        </label>
      </p>
      <p>
        <label>Uhrzeit Beginn
        <input name="uhrzeit_beginn" type="text" value="  :   Uhr" size="10" />
        </label>
      </p>
      <p>
        <label>Uhrzeit Ende
        <input name="uhrzeit_ende" type="text" value="  :   Uhr" size="10" />
        </label>
      </p>
      <p>
        <label>Kosten:
        <input type="text" name="kosten" />
        </label>
      &euro;</p>
      <p>
        <label>Beschreibung:<br />
    	
        <textarea name="beschreibung" cols="100" rows="20"></textarea>
        </label>
      </p>
      <input name="submit" type="submit" value="Eintragen" />
    </form>
    </body>
    </html>
    hier der code für upload.php

    PHP-Code:
    <?php 
    error_reporting
    (E_ALL);
    $conn mysql_connect("localhost""root""") or die("Verbindung zum Server Fehlgeschlagen");
    mysql_select_db("test") or die("Datenbank konnte nicht ausgewählt werden");

    $hinzufugen mysql_query("INSERT INTO events (eventTitle,
    eventDate,eventStartTime,eventEndTime,
    eventCost,eventDesc,flyer) VALUES 
    ('"
    .$_POST['titel']."',
    '"
    .$_POST['datum']."',
    '"
    .$_POST['uhrzeit_beginn']."',
    '"
    .$_POST['uhrzeit_ende']."',
    '"
    .$_POST['kosten']."',
    '"
    .$_POST['beschreibung']."',
    '"
    .$_POST['flyer']."'") OR die(mysql_error());

    ?>
    Tabelle events sowie spalten sind alle vorhanden, aber die daten werden einfach nicht in der tabelle eingetragen.

    was mache ich denn falsch?

    fehlermeldung ist (bei upload.php)

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 10

    Danke schonmal im Vorraus

    mfg
    BABA66
     

  2. #2
    Avatar von desaster0505
    desaster0505 desaster0505 ist offline Mitglied Gold
    Registriert seit
    Dec 2006
    Ort
    Lampertheim
    Beiträge
    185
    Hi!

    Vielleicht ein Fehler, was die Typen der Felder angeht.
    Datum ist bei dir HTML seitig TEXT, vielleicht aber bei der Datenbank ein DATE-Feld.

    Vielleicht ist das Datumsfeld auch leer. Lass es dir doch einfach mal mit echo ausgeben.

    Einen Syntaxfehler sehe ich auf Anhieb nicht.
    Geändert von desaster0505 (29.09.07 um 23:29 Uhr)
     
    Wenn euch mein Beitrag weiterhilft, bitte bewerten

  3. #3
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    Hi

    also ich würde wie ich immer sage erstmal den Query-String ein bisschen übersichtlicher aufschreiben.


    PHP-Code:
    <?php 
    error_reporting
    (E_ALL);
    $conn mysql_connect("localhost""root""") or die("Verbindung zum Server Fehlgeschlagen");
    mysql_select_db("test") or die("Datenbank konnte nicht ausgewählt werden");

    $query_str "INSERT INTO events (
    eventTitle,
    eventDate,
    eventStartTime,
    eventEndTime,
    eventCost,
    eventDesc,
    flyer
    ) VALUES (
    '"
    .$_POST['titel']."',
    '"
    .$_POST['datum']."',
    '"
    .$_POST['uhrzeit_beginn']."',
    '"
    .$_POST['uhrzeit_ende']."',
    '"
    .$_POST['kosten']."',
    '"
    .$_POST['beschreibung']."',
    '"
    .$_POST['flyer']."'
    )"
    ;


    $hinzufugen mysql_query($query_str) OR die(mysql_error());

    ?>
    und dann schau dir mal das hier an:
    http://www.php.net/manual/de/functio...ape-string.php

    Und das mit der Auflistung der Uhrzeit habe ich nicht ganz verstanden?!

    Gruß
     

  4. #4
    Avatar von desaster0505
    desaster0505 desaster0505 ist offline Mitglied Gold
    Registriert seit
    Dec 2006
    Ort
    Lampertheim
    Beiträge
    185
    Ach ja, was ich auch probieren würde ist die $_POST Variablen in "normale" Variablen zu speichern und diese dann im SQL-String zu verwenden, also z.B.

    PHP-Code:

    $var
    =$_POST['datum'];

    $sql_string mysql_query("INSERT INTO events (Beispiel) VALUES 
    ('"
    .$var."')";
    OR die(
    mysql_error()); 
     
    Wenn euch mein Beitrag weiterhilft, bitte bewerten

  5. #5
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    Danke für eure Antworten,

    @disaster0505

    du hast recht,

    für die spalte eventDate habe ich den Feldtyp Time
    und für die Uhrzeiten eventStart usw. den Feldtyp Time.
    hast du vielleicht ne seite für mich wo ich diesbezüglich eine auflistung finde. also wo steht, wo welcher feldtyp hingehört.

    @ne0thype

    danke werde es mir anschauen.
     

  6. #6
    Avatar von desaster0505
    desaster0505 desaster0505 ist offline Mitglied Gold
    Registriert seit
    Dec 2006
    Ort
    Lampertheim
    Beiträge
    185
    Zitat Zitat von BABA66 Beitrag anzeigen
    hast du vielleicht ne seite für mich wo ich diesbezüglich eine auflistung finde. also wo steht, wo welcher feldtyp hingehört.
    .
    Naja, eigentlich ist es ja nicht schwer zu wissen, welchen Feldtyp man verwenden muss.

    Wenn Formulardaten übergeben in eine Datenbank eingetragen werden sollen, dann ist das meist doch INTEGER, BOOL oder TEXT/STRING (weiß grad nicht genau wie es bei MySQL heißt).

    DATE z.B. kann man verwenden, wenn eine PHP-Funktin verwendet, die ein Datum zurückliefert.

    Eine Seite, die das auflistet kenne ich nicht und habe ich auch durch eine Suche eben nicht gefunden.
     
    Wenn euch mein Beitrag weiterhilft, bitte bewerten

  7. #7
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    @ne0thype


    das mit der uhrzeit und dem datum meinte ich folgendermaasen. anstatt im formular ein textfeld zu benutzen würde ich lieber jeweils ein select feld für die stunden und eins für die minuten haben. aber dann habe ich ja zwei felder mit informationen die in eine tabelle(Spaltentyp TIME) müssen und wie ich das hinkriegen soll, raff ich nicht so ganz. Hab auch versucht bei google nachzusuchen aber ich weiss nicht so wirklich unter welchen suchbegriffen.
     

  8. #8
    ne0hype ne0hype ist offline Mitglied Brokat
    Registriert seit
    Mar 2007
    Beiträge
    274
    ok

    dazu gibt es mehere Möglichkeiten:

    1. Wie du schon gesagt hast für die Stunde und Minute jeweils ein Dropdownfeld, dann kannst du mit "mktime()" dir den genauen Timestamp ausgeben lassen und denn dann mit "strftime()" so formatieren das MySQL mit dem Feldtyp "Datetime" klar kommt.
    MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format.

    oder

    2. du sagt gleich im INSERT query
    PHP-Code:
    $query "INSERT INTO database (datum) VALUES ('".$_POST['year']."-".$_POST['month']."-".$_POST['day']." ".$_POST['hour'].":".$_POST['minute'].":".$_POST['sec']."')"
    wobei ich persöonlich zur 1 rate, weil du da den Vorteil hast wenn der User den 31 Feb. auswählt (ausser du hast per Javascript beim Feb. die Schaltjahre usw. beachtet), dann automatisch den 2 bzw. den 3 März darausfolgt.
    Geändert von ne0hype (30.09.07 um 01:37 Uhr)
     

  9. #9
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    @ne0thype

    habe es nun mit der zweiten variante versucht, die du vorgeschlagen hast.
    Das Datum wird richtig übergeben aber irgendwie klappt es nicht bei der uhrzeit.

    der code für die uploader.html sieht nun so aus.

    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <form id="form1" name="form1" method="post" action="upload.php">
      <label>Titel:
      <input type="text" name="titel" />
      <br />
      <br />
      </label>
      <label>Flyer:
      <input type="file" name="flyer"  size="40">
      </label>
      <p>
        <label>Datum:
        <select name="datum_tag">
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
        </select>
        </label>
        <label>
        <select name="datum_monat">
          <option value="01">Januar</option>
          <option value="02">Februar</option>
          <option value="03">M&auml;rz</option>
          <option value="04">April</option>
          <option value="05">Mai</option>
          <option value="06">Juni</option>
          <option value="07">Juli</option>
          <option value="08">August</option>
          <option value="09">September</option>
          <option value="10">Oktober</option>
          <option value="11">November</option>
          <option value="12">Dezember</option>
        </select>
        </label>
        <label>
        <select name="datum_jahr">
          <option value="2000">2000</option>
          <option value="2001">2001</option>
          <option value="2002">2002</option>
          <option value="2003">2003</option>
          <option value="2004">2004</option>
          <option value="2005">2005</option>
          <option value="2006">2006</option>
          <option value="2007">2007</option>
          <option value="2008">2008</option>
          <option value="2009">2009</option>
          <option value="2010">2010</option>
          <option value="2011">2011</option>
          <option value="2012">2012</option>
          <option value="2013">2013</option>
          <option value="2014">2014</option>
          <option value="2015">2015</option>
          <option value="2016">2016</option>
          <option value="2017">2017</option>
          <option value="2018">2018</option>
          <option value="2019">2019</option>
          <option value="2020">2020</option>
          <option value="2021">2021</option>
          <option value="2022">2022</option>
          <option value="2023">2023</option>
          <option value="2024">2024</option>
          <option value="2025">2025</option>
          <option value="2026">2026</option>
          <option value="2027">2027</option>
          <option value="2028">2028</option>
          <option value="2029">2029</option>
          <option value="2030">2030</option>
          <option value="2031">2031</option>
          <option value="2032">2032</option>
          <option value="2033">2033</option>
          <option value="2034">2034</option>
          <option value="2035">2035</option>
          <option value="2036">2036</option>
          <option value="2037">2037</option>
          <option value="2038">2038</option>
          <option value="2039">2039</option>
    	  <option value="2040">2040</option>
          <option value="2041">2041</option>
          <option value="2042">2042</option>
          <option value="2043">2043</option>
          <option value="2044">2044</option>
          <option value="2045">2045</option>
          <option value="2046">2046</option>
          <option value="2047">2047</option>
          <option value="2048">2048</option>
          <option value="2049">2049</option>
          <option value="2050">2050</option>
          <option value="2051">2051</option>
          <option value="2052">2052</option>
          <option value="2053">2053</option>
          <option value="2054">2054</option>
          <option value="2055">2055</option>
          <option value="2056">2056</option>
          <option value="2057">2057</option>
          <option value="2058">2058</option>
          <option value="2059">2059</option>
          <option value="2060">2060</option>
        </select>
        </label>
      </p>
      <p>
        <label>Beginn:
        <select name="start_std">
    	<option value="00">00</option>
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          
        </select>
        </label>
        <label>  :    
        <select name="start_min">
    <option value="00">00</option>
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
          <option value="32">32</option>
          <option value="33">33</option>
          <option value="34">34</option>
          <option value="35">35</option>
          <option value="36">36</option>
          <option value="37">37</option>
          <option value="38">38</option>
          <option value="39">39</option>
          <option value="40">40</option>
          <option value="41">41</option>
          <option value="42">42</option>
          <option value="43">43</option>
          <option value="44">44</option>
          <option value="45">45</option>
          <option value="46">46</option>
    	  <option value="47">47</option>
          <option value="48">48</option>
          <option value="49">49</option>
          <option value="50">50</option>
          <option value="51">51</option>
          <option value="52">52</option>
          <option value="53">53</option>
          <option value="54">54</option>
          <option value="55">55</option>
          <option value="56">56</option>
          <option value="57">57</option>
          <option value="58">58</option>
          <option value="59">59</option>
        </select>
        </label>
      Uhr</p>
      <p>
        <label>Ende:
        <select name="ende_std">
        <option value="00">00</option>
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
    	</select>
        </label>
        <label>  :  
        <select name="ende_min">
    	<option value="00">00</option>
          <option value="01">01</option>
          <option value="02">02</option>
          <option value="03">03</option>
          <option value="04">04</option>
          <option value="05">05</option>
          <option value="06">06</option>
          <option value="07">07</option>
          <option value="08">08</option>
          <option value="09">09</option>
          <option value="10">10</option>
          <option value="11">11</option>
          <option value="12">12</option>
          <option value="13">13</option>
          <option value="14">14</option>
          <option value="15">15</option>
          <option value="16">16</option>
          <option value="17">17</option>
          <option value="18">18</option>
          <option value="19">19</option>
          <option value="20">20</option>
          <option value="21">21</option>
          <option value="22">22</option>
          <option value="23">23</option>
          <option value="24">24</option>
          <option value="25">25</option>
          <option value="26">26</option>
          <option value="27">27</option>
          <option value="28">28</option>
          <option value="29">29</option>
          <option value="30">30</option>
          <option value="31">31</option>
          <option value="32">32</option>
          <option value="33">33</option>
          <option value="34">34</option>
          <option value="35">35</option>
          <option value="36">36</option>
          <option value="37">37</option>
          <option value="38">38</option>
          <option value="39">39</option>
          <option value="40">40</option>
          <option value="41">41</option>
          <option value="42">42</option>
          <option value="43">43</option>
          <option value="44">44</option>
          <option value="45">45</option>
          <option value="46">46</option>
    	  <option value="47">47</option>
          <option value="48">48</option>
          <option value="49">49</option>
          <option value="50">50</option>
          <option value="51">51</option>
          <option value="52">52</option>
          <option value="53">53</option>
          <option value="54">54</option>
          <option value="55">55</option>
          <option value="56">56</option>
          <option value="57">57</option>
          <option value="58">58</option>
          <option value="59">59</option>
        </select>
        </label>
      Uhr</p>
      <p>
        <label>Kosten Eintritt:
        <input type="text" name="kosten" />
        </label>
      &euro;</p>
      <p>
        <label>Beschreibung:<br />
    	
        <textarea name="beschreibung" cols="100" rows="20"></textarea>
        </label>
      </p>
      <input name="submit" type="submit" value="Eintragen" />
    </form>
    </body>
    </html>
    und hier das dazugehörige script upload.php

    PHP-Code:
    <?php 
    error_reporting
    (E_ALL);
    $conn mysql_connect("localhost""root""") or die("Verbindung zum Server Fehlgeschlagen");
    mysql_select_db("test") or die("Datenbank konnte nicht ausgewählt werden");

    $titel $_POST['titel'];
    $datum_jahr $_POST['datum_jahr'];
    $datum_monat $_POST['datum_monat'];
    $datum_tag $_POST['datum_tag'];
    $start_std $_POST['start_std'];
    $start_min $_POST['start_min'];
    $ende_std $_POST['ende_std'];
    $ende_min $_POST['ende_min'];
    $kosten $_POST['kosten'];
    $beschreibung $_POST['beschreibung'];
    $flyer $_POST['flyer'];


    $hinzufugen mysql_query("INSERT INTO events (eventTitle,
    eventDate,
    eventStartTime,
    eventEndTime,
    eventCost,
    eventDesc,
    flyer) 
    VALUES 
    ('"
    .$titel."',
    '"
    .$datum_jahr."''-''".$datum_monat."''-''".$datum_tag."',
    '"
    .$start_std."'':''".$start_min."'':''00',
    '"
    .$ende_std."'':''".$ende_min."'':''00',
    '"
    .$kosten."',
    '"
    .$beschreibung."',
    '"
    .$flyer."')");

    mysql_close() OR die(mysql_error());

    if(!
    $hinzufugen) {
    echo 
    "<h1>Uploadvorgang fehlgeschlagen</h1>";
    } else{
    echo 
    "<h1>Uploadvorgang war erfolgreich</h1> <br>";}

    ?>
    irgendwie wird aus dem formular nur der wert für die stunde in der tabelle eingetragen und das auch noch an der stelle für die sekunden, die eigentlich immer auf null sein sollten.
    Kann mir vorstellen, dass ich irgendwo nen ganz simplen fehler drinn hab aber ich finde ihn einfach nicht.
     

  10. #10
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    Sooo Leute,

    hab jetzt alles glücklicherweise zum laufen bekommen.
    Hab nun einen abgesicherten Loginbereich mit der Möglichkeit Events einzutragen und zu löschen.
    Im Kalenderfenster werden die Events auch alle angezeigt.

    Nun möchte ich den nächsten Schritt machen und das Aussehen verändern.

    Momentan werden alle Tage ausserhalb des aktuellen Monats grau dargestellt.
    Tage innerhalb eines Monats weiss und die aktuelle Auswahl in rot.
    Und dazu natürlich der Link für den jeweiligen Tag.

    Ich möchte nun, dass Tage, an denen Events stattfinden auch eine weitere Farbe haben. Zudem sollten die Wochenenden entsprechend gekennzeichnet sein.

    Habe mir überlegt Images in verschiedenen Farben für alle Zahlen von 1 bis 31 zu erstellen.
    Das Image mit der jeweiligen Farbe und Zahl soll dann angezeigt werden je nachdem ob der Tag sich im aktuellen Monat befindet, ob er auf ein Wochenende fällt, oder ob an dem Tag ein Event stattfindet.
    Zudem möchte ich nochmal 12 Images für jeden Monat und zwei für die vor und zurück Links machen.
    Um die restlichen leeren Tabellenspalten mit Images zu füllen reicht mein php Wissen wahrscheinlich aus.
    Ich glaube sogar das mit den Buttons bekomme ich auch ohne Hilfe hin.

    Aber ich brauche auf jeden Fall Hilfe, um:

    1.- zu bestimmen, welcher Tag Events beinhaltet, (Daten stehen in der Mysql- Tabelle events in der Spalte eventDate im yahr-monat tag format)
    2. -zu bestimmen welche Tage auf ein Wochenende fallen.
    3. den jeweiligen Tagen die passenden Images zuzuweisen (Passende Farbe je nachdem ob die oberen 2 Bedingungen erfüllt sind.)
    4. den Tagen ausserhalb des aktuellen Monats die passenden Images zuzuweisen
    5. dem aktuellen Tag das passende Image in der richtigen Farbe zuzuweisen
    6. den Monatsnamen die passenden Images zuzuweisen

    hier ist der aktuelle Code für den Kalender.

    PHP-Code:
    <html>
    <head>
    <title>PHP Calendar</title>
    <style type="text/css">
    <!--
    .table.calendar {border: 1px solid #000000; border-collapse: collapse; color: #000000; background: #FFFFFF; }
    .td.today { border: 1px solid white; color: #000000; background: #EFEFEF; font-weight: bold;}
    .td.monthdays {border: 1px solid #434470; color: #000000; background: #FFFFFFF; }
    .td.nonmonthdays { border: 1px solid white; color: #000000; background: #EFEFEF;}
    .style1 {
        color: #FFFFFF;
        font-weight: bold;
        bgcolor: #FF3333
    }
    .style2 {
        font-weight: bold;
        bgcolor: #FF3333

    }
    .samstage{
        font-weight: bold;
        bgcolor: #00FFFF

    }
    -->
    </style>
    <body>

    <?php
    error_reporting
    ('0');
    ini_set('display_errors''0');
    // Gather variables from
    // user input and break them
    // down for usage in our script

    if(!isset($_REQUEST['date'])){
       
    $date mktime(0,0,0,date('m'), date('d'), date('Y'));
    } else {
       
    $date $_REQUEST['date'];
    }

    $day date('d'$date);
    $month date('m'$date);
    $year date('Y'$date);

    // Get the first day of the month
    $month_start mktime(0,0,0,$month1$year);

    // Get friendly month name
    $month_names = array(1=>"Januar",
                      
    2=>"Februar",
                      
    3=>"M&auml;rz",
                      
    4=>"April",
                      
    5=>"Mai",
                      
    6=>"Juni",
                      
    7=>"Juli",
                      
    8=>"August",
                      
    9=>"September",
                      
    10=>"Oktober",
                      
    11=>"November",
                      
    12=>"Dezember");


    $month_name date('n'$month_start);


    // Figure out which day of the week
    // the month starts on.
    $month_start_day date('D'$month_start);

    switch(
    $month_start_day){
        case 
    "Mon"$offset 0; break;
        case 
    "Tue"$offset 1; break;
        case 
    "Wed"$offset 2; break;
        case 
    "Thu"$offset 3; break;
        case 
    "Fri"$offset 4; break;
        case 
    "Sat"$offset 5; break;
        case 
    "Sun"$offset 6; break;
    }

    // determine how many days are in the last month.
    if($month == 1){
       
    $num_days_last cal_days_in_month(012, ($year -1));
    } else {
       
    $num_days_last cal_days_in_month(0, ($month -1), $year);
    }
    // determine how many days are in the current month.
    $num_days_current cal_days_in_month(0$month$year);

    // Build an array for the current days
    // in the month
    for($i 1$i <= $num_days_current$i++){
        
    $num_days_array[] = $i;
    }

    // Build an array for the number of days
    // in last month
    for($i 1$i <= $num_days_last$i++){
        
    $num_days_last_array[] = $i;
    }

    // If the $offset from the starting day of the
    // week happens to be Sunday, $offset would be 0,
    // so don't need an offset correction.

    if($offset 0){
        
    $offset_correction array_slice($num_days_last_array, -$offset$offset);
        
    $new_count array_merge($offset_correction$num_days_array);
        
    $offset_count count($offset_correction);
    }

    // The else statement is to prevent building the $offset array.
    else {
        
    $offset_count 0;
        
    $new_count $num_days_array;
    }

    // count how many days we have with the two
    // previous arrays merged together
    $current_num count($new_count);

    // Since we will have 5 HTML table rows (TR)
    // with 7 table data entries (TD)
    // we need to fill in 35 TDs
    // so, we will have to figure out
    // how many days to appened to the end
    // of the final array to make it 35 days.


    if($current_num 35){
       
    $num_weeks 6;
       
    $outset = (42 $current_num);
    } elseif(
    $current_num 35){
       
    $num_weeks 5;
       
    $outset = (35 $current_num);
    }
    if(
    $current_num == 35){
       
    $num_weeks 5;
       
    $outset 0;
    }
    // Outset Correction
    for($i 1$i <= $outset$i++){
       
    $new_count[] = $i;
    }

    // Now let's "chunk" the $all_days array
    // into weeks. Each week has 7 days
    // so we will array_chunk it into 7 days.
    $weeks array_chunk($new_count7);


    // Build Previous and Next Links
    $previous_link "<a href=\"".$_SERVER['PHP_SELF']."?date=";
    if(
    $month == 1){
       
    $previous_link .= mktime(0,0,0,12,$day,($year -1));
    } else {
       
    $previous_link .= mktime(0,0,0,($month -1),$day,$year);
    }
    $previous_link .= "\"><<<</a>";

    $next_link "<a href=\"".$_SERVER['PHP_SELF']."?date=";
    if(
    $month == 12){
       
    $next_link .= mktime(0,0,0,1,$day,($year 1));
    } else {
       
    $next_link .= mktime(0,0,0,($month +1),$day,$year);
    }
    $next_link .= "\">>>></a>";

    // Build the heading portion of the calendar table
    echo "<table border=\"3\" cellpadding=\"3\" cellspacing=\"3\" class=\"calendar\" align=\"center\" table width=\"416\" height=\"353\">\n".
         
    "<tr>\n".
         
    "<td colspan=\"7\" bgcolor=\"#FF3366\">\n".
         
    "<table border=\"3\" cellpadding=\"3\" cellspacing=\"3\" table align=\"center\">\n".
         
    "<tr>\n".
         
    "<td colspan=\"2\" width=\"75\" align=\"left\">$previous_link</td>\n".
         
    "<td colspan=\"3\" width=\"150\" align=\"center\"><span class=\"style1\">$month_names[$month_name] $year</span></td>\n".
         
    "<td colspan=\"2\" width=\"75\" align=\"right\">$next_link</td>\n".
         
    "</tr>\n".
         
    "</table>\n".
         
    "</td>\n".
         
    "<tr>\n".
         
    "<td><strong>Mo</strong></td><td><strong>Di</strong></td><td><strong>Mi</strong></td><td><strong>Do</strong></td><td><strong>Fr</strong></td><td><strong>Sa</strong></td><td><strong>So</strong></td>\n".
         
    "</tr>\n";

    // Now we break each key of the array 
    // into a week and create a new table row for each
    // week with the days of that week in the table data

    $i 0;
    foreach(
    $weeks AS $week){
           echo 
    "<tr>\n";
           foreach(
    $week as $d){
             if(
    $i $offset_count){
                 
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month -1,$d,$year)."\">$d</a>";
                 echo 
    "<td class=\"nonmonthdays\" bgcolor=\"#CCCCCC\">$day_link</td>\n";
             }
             if((
    $i >= $offset_count) && ($i < ($num_weeks 7) - $outset)){
                
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month,$d,$year)."\">$d</a>";
               if(
    $date == mktime(0,0,0,$month,$d,$year)){
                   echo 
    "<td class=\"today\" bgcolor=\"#FF3366\">$d</td>\n";
               } else {
                   echo 
    "<td class=\"days\">$day_link</td>\n";
               }
            } elseif((
    $outset 0)) {
                if((
    $i >= ($num_weeks 7) - $outset)){
                   
    $day_link "<a href=\"".$_SERVER['PHP_SELF']."?date=".mktime(0,0,0,$month +1,$d,$year)."\">$d</a>";
                   echo 
    "<td class=\"nonmonthdays\" bgcolor=\"#CCCCCC\">$day_link</td>\n";
               }
            }
            
    $i++;
          }
          echo 
    "</tr>\n";   
    }

    // Close out your table and that's it!
    echo '<tr><td colspan="7" class="days"> </td></tr>';
    echo 
    '</table>';



    //Display events according to date.
    echo "<table cellspacing=\"0\" cellpadding=\"0\" width=\"300\" align=\"center\">";
    echo 
    "<tr><td align=\"center\">Events am $day_name$day $month_names[$month_name]  $year:</td></tr>";
    //Open mySQL connection
    $conn mysql_connect("localhost""root""") or die("Could not connect!");
    //Connect to database
    mysql_select_db("test") or die("Could not select database");
    //Query database
    $sql "SELECT * FROM events WHERE eventDate = FROM_UNIXTIME($date)";
    $result mysql_query($sql);

    //Fecth rows according to timestamp
    $num_rows mysql_num_rows($result);
    if(
    $num_rows == 0){
        echo 
    "<tr><td align=\"center\">Für Heute sind leider Keine Events gelistet.</td></tr>";
    }else{
        while (
    $row=mysql_fetch_array($result)){
      
    $title $row["eventTitle"];
      
    $desc $row["eventDesc"];
      
    $start $row['eventStartTime'];
      
    $end $row['eventEndTime'];
      
    $cost $row['eventCost'];
      
    $flyer$row['flyer'];
      
    $flyer_link "<img src=\"http://www.tutorials.de/forum/images/".$row['flyer']."\"width=\"300\" height=\"120\" border=\"0\"/>\n";
        
      echo 
    "<tr><td><b><h2>$title</h2></b></td>";
      echo 
    "<tr><td>$flyer_link</td>";
      echo 
    "<tr><td>Uhrzeit: $start - $end</td></tr>";
      echo 
    "<tr><td>Eintritt: ";
          if (
    $cost 0){
        echo 
    "€$cost</td></tr>";
          } else {
        echo 
    "For Free!</td></tr>";
          }
      echo 
    "<tr><td>$desc<br><br><hr></td></tr>";
        }
    }
    echo 
    "</table>";
      
    ?>
    </body> 
    </html>
    hoffe ihr könnt mir da ein wenig weiterhelfen.

    mfg

    BABA66
    Geändert von BABA66 (03.10.07 um 06:59 Uhr) Grund: Rechtschreibung
     

  11. #11
    BABA66 BABA66 ist offline Rookie
    Registriert seit
    Sep 2007
    Beiträge
    6
    Na Leute,

    ist mein Thema schon zu weit runtergerutscht oder fällt da keinem was ein?
    Hoffe es macht keinem was aus wenn ich den Threat hochpushe.

    es würde mir für den anfang reichen, wenn mir jemand helfen würde wenigstens die tage mit den events zu bestimmen.

    mfg

    BABA66
     

  12. #12
    andy72 andy72 ist offline Mitglied Platin
    Registriert seit
    Oct 2006
    Ort
    München
    Beiträge
    655
    Nix gegen Deinen Kalender, aber ich hab echt keine rechte Idee, wie man den umstricken könnte
    Schau Dir malden kalender von pear.php.net an - ich hab den einfach genommen und das ganze PEAR-Krams rausgeworfen um ihn in einer normalen Server-Umgebung ohne PEAR verwenden zu können.Die Klassen in diesem Paket erlauben eine weitaus bessere Darstellung und man kann auch die WE's berücksichtigen.

    An dieser Stelle nun zu meinem Problem, da das hiergut reinpasst:
    ------------------------------------------------------------------------------------------------
    Hab meinen Kalender wie gesagt auf dem von Pear aufgebaut, beziehe die Daten für die Events aus der DB und will nun Events darstellen,die über mehrere tage gehen können.
    Meine Idee dazu: DIV's mit z-Index und absoluter Position.
    Zu meinem Problem: wie kann ich das ganze dann darstellen ? Woher weiss ich, ob an einer Stelle schon ein Div liegt - es soll sich ja nix überlappen *kopfkratz*

    LG & Danke
    Andy
    Geändert von andy72 (10.10.07 um 07:28 Uhr)
     

  13. #13
    Acriss Acriss ist offline Mitglied Platin
    Registriert seit
    Jun 2007
    Ort
    Lingen (Niedersachsen, zZ in Istanbul)
    Beiträge
    685
    Bezgl der Wochenendtage solltest du dir mal die Funktion getdate() ansehen.
    Besonders "wday"

    Um Daten aus deiner MySQL-Tabelle zu lesen nutzt du folgende Funktion:

    PHP-Code:
    <?php
    $connect 
    mysql_connect('localhost''Benutzer''Passwort');
    $dbwahl mysql_select_db('dbname');

    $date '2007-10-27'// Das solltest du verändern ;)

    $select "SELECT * FROM tablename WHERE Datum = '".$date."'";
    $query mysql_query($select);

    $result mysql_fetch_assoc($query);
    echo 
    $result['spaltenname'];
    ?>
    Mittels getdate kannst du mit einer einfachen if den Felder entwedet nomonthdays oder monthday zuweisen

    Für die Passenden Bilder kannst du das selbe machen
     

Ähnliche Themen

  1. Antworten: 25
    Letzter Beitrag: 01.11.10, 23:42
  2. Event Kalender - Wie soll er aussehen?
    Von Flex im Forum Creative Lounge
    Antworten: 3
    Letzter Beitrag: 11.08.10, 22:54
  3. Event für neues Kalender/Kontakt-Elemet in Outlook?
    Von kwmaster im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 07.07.08, 16:38
  4. Hilfe bei Event Kalender
    Von joseline im Forum PHP
    Antworten: 3
    Letzter Beitrag: 23.08.07, 23:58
  5. Probs mit Event Kalender
    Von ihop im Forum PHP
    Antworten: 9
    Letzter Beitrag: 07.06.06, 16:16