Wochenkalender - Termine wiederholen sich

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

  • Wochenkalender - Termine wiederholen sich

    Habe meinen bisherigen Wochenübersichtskalender verbessert:
    Hab hierfür eine Tabelle "cal" mit
    id, inhalt, datum

    und eine Tabelle von Mo->So jeweils von 10:00 bis 22:00
    das ganze ist ein relativ kurzes script

    PHP-Code:
    $heute date("w",time())-1//Sonntag=0
        
    $day = array();
        
        for(
    $i=0;$i<7;$i++)
            
    $day[]     = date("d.m.Y",mktime(0,0,0,date("m",time()),date("d",time())-$heute+$i,date("Y",time())));
        
        echo 
    '<h3>Studio West</h3><br/>
                <table width="100%" cellspacing="0" cellpadding="0">
                <tr>
                    <td class="titel" width="5%" align="center" style="border-top:none;"></td>
                    <td class="titel" width="13%" align="center">Montag<br>'
    .$day['0'].'</td>
                    <td class="titel" width="13%" align="center">Dienstag<br>'
    .$day['1'].'</td>
                    <td class="titel" width="13%" align="center">Mittwoch<br>'
    .$day['2'].'</td>
                    <td class="titel" width="13%" align="center">Donnerstag<br>'
    .$day['3'].'</td>
                    <td class="titel" width="13%" align="center">Freitag<br>'
    .$day['4'].'</td>
                    <td class="titel" width="13%" align="center">Samstag<br>'
    .$day['5'].'</td>
                    <td class="titel" width="13%" align="center">Sonntag<br>'
    .$day['6'].'</td>
                </tr>'
    ;
                
        
    $sql "SELECT *,
                        date_format(datum,'%d.%m.%Y') as fdatum,
                        date_format(datum,'%H') as uhr
                        from cal ORDER by datum DESC"
    ;
        
    $query mysql_query($sql);
        
    $cal = array();
                
        while ( 
    $row mysql_fetch_array($query) )
        {
            
    $cal[$row['fdatum']][$row['uhr']][]=$row['inhalt'];
        }
        
    // Array[datum][uhrzeit]
        

            
        
    for($i=10;$i<23;$i++)
        {
                
    $zeit mktime($i,$j,0,date("m",time()),date("d",time()),date("Y",time()));
                

                echo 
    '<tr>
                        <td style="border-left:1px solid #000;font-weight:bold; height:30px;">'
    .date("H:i",$zeit).'</td>';
                        
                for(
    $k=0;$k<7;$k++)
                {
                    echo 
    '<td onmouseover="style.backgroundColor=\'#FFE4B5\'" onmouseout="style.backgroundColor=\'transparent\'">';
                    for(
    $l=0;$l<count($cal[$day[$k]][date("H",$zeit)]);$l++)
                        echo (
    $cal[$day[$k]][date("H",$zeit)][$l]);
                    echo 
    '</td>';
                }

                
                echo 
    '</tr>';

        }    
        echo 
    '</table>
                '



    Nun möchte ich gern Termine eintragen die sich wöchentlich wiederholen (bis auf widerruf), nur wie bewerkstellige ich dies am besten ? 50 Wochen im voraus planen und somit 50 einträge in der DB erstellen ?

    Konkrete Frage: Wie geh ich bei der Speicherung von sich wiederholenden Einträgen am besten vor ?

  • #2
    du erweiterst die Tabelle um eine Spalte, die die Terminart enthält. Dann kannst du den Wert prüfen (onetime, daily, weekly, monthly, ... whatever) und entsprechend darauf reagieren., und nicht irgend was im voraus schon eintragen.

    Kommentar


    • #3
      Wer dmir hierfür was überlegen.

      Gute Frage am Rande:
      welchen Datentyp verwendet man hierbei am besten ?
      ist es vorteilhaft INT zu verwenden und für jede zahl PHP mäßig einen Typ definieren ?

      Kommentar


      • #4
        Ist dir überlassen, PHP-mäßig würde ich Enum nehmen, somit erübrigt sich die Frage

        Kommentar

        Lädt...
        X