Barksalot: KW als Spalte einfügen

Beitrag lesen

Hallo Rolf,

danke für deine sehr ausführliche Erklärung. Allerdings funktioniert dieses leider nicht. Wenn ich meinen Code so umbaue wie du es beschrieben hast habe ich in jedem Monat die gleichen Wochennummern. Außerdem kann ich schlecht alles komplett umbauen, der Code hat im realen Einsatz knapp 500 Zeilen Code, wo Termine ausgelesen werden usw... das wäre ein Unding wenn ich dieses alles umbauen muss, ich sitze an diesem Kalender jetzt fast ein Jahr und es funktioniert noch immer nicht so wie ich es gerne hätte. Mit deinen Änderungen fange ich fast wieder bei 0 an, das kann ich leider nicht.

Schade, dann muss ich wohl auf meine Wochennummern verzichten.

Nur dass du mal siehst wie das ganze ausschaut. Hier der Code inkl. aller Abfragen und Abhängigkeiten.

$admin_kalenderarten = admin_kalenderarten($mysqli);

function Kalender_Termine($mysqli, $datum, $teile25, $limit=false) {

    $values = $teile25;
    $empfaengerListe = "'".implode("','", $values)."'";

    $select = "SELECT kt_id, kt_kalenderID, kt_datum, test, k_code, k_art, k_jobNr, k_bezeichnung, k_auto, k_farbe, k_datum_von, 
                                     k_ganztags, k_von, k_bis,  f_bezeichnung, f_kennzeichen, ka_farbe, kf_farbe, kf_color 
                                
                                FROM kalender_termine 
                                
                                LEFT JOIN kalender ON kalender.k_code = kalender_termine.kt_kalenderID
                                LEFT JOIN fuhrpark ON fuhrpark.f_id = kalender.k_auto
                                LEFT JOIN kalender_arten ON kalender_arten.ka_code = kalender.k_art
                                LEFT JOIN kalender_terminfarbe ON kalender_terminfarbe.kf_farbe = kalender_arten.ka_farbe

                                WHERE kt_datum=?
                                AND k_art IN (" . $empfaengerListe . ")
                                
                                ORDER by test ASC";

    if ($limit != false) {
                
                $stmt = $mysqli->prepare($select . " LIMIT ?" );
                $stmt->bind_param("ss",  $datum, $limit);
                
    } else {
                
                $stmt = $mysqli->prepare($select );
                 $stmt->bind_param("s",  $datum);
             }

    $stmt->execute();
    $stmt->bind_result($kt_id, $kt_kalenderID, $kt_datum, $test, $k_code, $k_art, $k_jobNr, $k_bezeichnung, $k_auto, $k_farbe, $k_datum_von, $k_ganztags, 
                       $k_von, $k_bis, $f_bezeichnung, $f_kennzeichen, $ka_farbe, $kf_farbe, $kf_color);
    $stmt->store_result();
        
    if($stmt->num_rows() >  0) {     
        while ($stmt->fetch()){
            
            $Kalender_Termine[] = array( 
                
                'kt_id'          => $kt_id,
                'kt_kalenderID'  => $kt_kalenderID,
                'kt_datum'       => $kt_datum,
                'test'           => $test,
                'k_code'         => $k_code,
                'k_art'          => $k_art,
                'k_jobNr'        => $k_jobNr,
                'k_bezeichnung'  => $k_bezeichnung,
                'k_auto'         => $k_auto,
                'k_farbe'        => $k_farbe,
                'k_datum_von'    => $k_datum_von,
                'k_ganztags'     => $k_ganztags,
                'k_von'          => $k_von,
                'k_bis'          => $k_bis,
                'f_bezeichnung'  => $f_bezeichnung,
                'f_kennzeichen'  => $f_kennzeichen,
                'ka_farbe'       => $ka_farbe,
                'kf_farbe'       => $kf_farbe,
                'kf_color'       => $kf_color
             );
        }
        
        return $Kalender_Termine;
    }
}

// Vor und Zurück
if (isset($_GET['ym'])) {

    $ym    = $_GET['ym'];
    $parts = explode("-", $ym);
    $month = (int)$parts[1];    // convert string to integer
    $year  = (int)$parts[0];

} else {

    // Aktueller Monat
    $ym    = date('Y-m');
    $parts = explode("-", $ym);
    $month = date("n");
    $year  = (int)$parts[0];

}
  
$timestamp = strtotime($ym."-01");
if ($timestamp === false) {
    $timestamp = time();
}

// Monate auf Deutsch
$monate = array(1=>"Januar", 2=>"Februar", 3=>"März", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September",
                10=>"Oktober", 11=>"November", 12=>"Dezember");

  
// Heute ermitteln
$today = date('Y-m-j', time());
  
// H3 Title
$html_title = date('Y / m', $timestamp);
  
// Prev & Next / Monat Link
$prev = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)-1, 1, date('Y', $timestamp)));
$next = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)+1, 1, date('Y', $timestamp)));
  
// Anzahl der Tage ermitteln
$day_count = date('t', $timestamp);
  
// 0:So 1:Mo 2:Di usw...
$str = date('w', mktime(0, 0, 0, date('m', $timestamp), 0, date('Y', $timestamp)));
  
  
// Kalender zusammenbauen!!
$weeks = array();
$week = '';
  
// Leer Zeilen hinzufügen
$week .= str_repeat('<td></td>', $str);
 
for ( $day = 1; $day <= $day_count; $day++, $str++) {
     
    $date = $ym.'-'.$day;

    $datumTermine = Kalender_Termine($mysqli, $date, $teile25, 3);
    $datumTermine_Alle = Kalender_Termine($mysqli, $date, $teile25);
    $test =  count($datumTermine_Alle);

    if ($today == $date) {
        if ($test > 3) {
        $week .= '<td class="today testEintrag"><div style="margin:5px 8px">'.$day .' - <a href="tageskalender.php?date='.$date .'">Alle '.$test.' anzeigen</a></div>';
        } else {
        $week .= '<td class="today testEintrag"><div style="margin:5px 8px"><a href="tageskalender.php?date='.$date .'">'.$day .'</a></div>';
        }

    } else {
       if ($test > 3) {
           $week .= '<td class="testEintrag"><div style="margin:5px 8px">'.$day .' - <a href="tageskalender.php?date='.$date .'">Alle '.$test.' anzeigen</a></div>';
       } else {
           $week .= '<td class="testEintrag"><div style="margin:5px 8px"><a href="tageskalender.php?date='.$date .'">'.$day .'</a></div>';
       }
    }

    if($datumTermine > 0) {

        //$week .= '<br><br>';

        foreach($datumTermine as $array){

            $test_datum = $array["kt_datum"]; 
            $wochentage = array ('So','Mo','Di','Mi','Do','Fr','Sa'); 
            list ($jahr, $monat, $tag) = explode ('-', $test_datum) ; 
            $datum = getdate(mktime ( 0,0,0, $monat, $tag, $jahr)); 
            $wochentag = $datum['wday']; 

            
            if ($array["kt_datum"] == $array["k_datum_von"]) {

                if ($array["k_ganztags"] == "0") {


                    if ($array["k_jobNr"] == "") {
                        $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px;">
                                <a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].';">'. $array["k_bezeichnung"]. "</a>
                                <span style='color:".$array["kf_color"]."; font-size:10px; display: block; padding-bottom: 2px;'>". $array["k_von"]. " bis " . $array["k_bis"]. " Uhr".  '</span>
                           </div>';
                    } else {
                       
                        $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px;">
                                <a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].';">'. shortText($array["k_bezeichnung"],15). "</a>
                                <span style='color:".$array["kf_color"]."; font-size:10px; display: block; padding-bottom: 2px;'>". $array["k_jobNr"] . " - " . $array["k_von"]. " bis " . $array["k_bis"]. " Uhr".  '</span>
                           </div>';
                    }


                } else {

                    if ($array["k_auto"] == "") {

                        if ($array["k_jobNr"] == "") {
                            $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; min-height: 37px;">
                            <a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].'">'.shortText($array["k_bezeichnung"],15). '</a>
                            </div>';
                        
                            } else {

                            $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; min-height: 37px;">
                            <a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].'">'.shortText($array["k_bezeichnung"],15). "</a>

                            <span style='color:".$array["kf_color"]."; font-size:10px; display: block; padding-bottom: 2px;'>". $array["k_jobNr"]. '</span>
                           </div>';
                        }
                        
                        

                    } else {
                        $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; min-height: 37px;">
                            <a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].'">'.shortText($array["f_bezeichnung"],15). "</a>

                            <span style='color:".$array["kf_color"]."; font-size:10px; display: block; padding-bottom: 2px;'>". $array["k_jobNr"]. '</span>
                           </div>';
                    }
                
                    

                }
            } else {

                if ($wochentage[$wochentag] == "Mo") {

                    if ($array["k_auto"] == "") {
                        $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; height: 37px;"><span style="color:'.$array["kf_color"].'"><a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].'">'.shortText($array["k_bezeichnung"],15).'</a> <span style="color:'.$array["kf_color"].'; font-size:10px; display: block; padding-bottom: 2px;">'. $array["k_jobNr"]. '</span></div>';
                    } else {

                    $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; height: 37px;"><span style="color:'.$array["kf_color"].'"><a href="/kalender-datenblatt.php?code='.$array["k_code"].'" style="color:'.$array["kf_color"].'">'.shortText($array["f_bezeichnung"],15).'</a><span style="color:'.$array["kf_color"].'; font-size:10px; display: block; padding-bottom: 2px;">'. $array["k_jobNr"]. '</span></div>';
                    }

                } else {

                    $week .= '<div style="background:'.$array["ka_farbe"].'; margin-bottom:5px; padding-left:8px; height: 37px;"></div>';
                }
            }

    }}

    $week .= '</td>';
     
    // Ende der Woche bzw. Ende des Monats
    if ($str % 7 == 6 || $day == $day_count) {
         
        if($day == $day_count) {
            // Zelle hinzufügen
            $week .= str_repeat('<td></td>', 6 - ($str % 7));
        }
         
        $weeks[] = '<tr>'.$week.'</tr>';
         
        // Neue Woche
        $week = '';
         
    }
  
}

Bis bald!
Bernd

0 117

KW als Spalte einfügen

Barksalot
  • php
  1. 1
    Regina Schaukrug
    1. 0
      Barksalot
      1. 0
        Regina Schaukrug
        1. 0
          Barksalot
          1. 1
            Regina Schaukrug
            1. 0
              Barksalot
              1. 1
                Regina Schaukrug
                1. 0
                  Barksalot
              2. 0
                Rolf B
                • php
                • programmiertechnik
                1. 0
                  Barksalot
                  1. 0
                    Rolf B
                    1. 0
                      beatovich
                2. 0
                  Barksalot
                  1. 0
                    Rolf B
                    1. 0
                      Barksalot
                      1. 0
                        Rolf B
                      2. 1
                        Rolf B
                        1. 0
                          Barksalot
                      3. 0

                        Hier mal meine Vorgehensweise

                        Regina Schaukrug
                        1. 0

                          (Fortsetzung)

                          Regina Schaukrug
                        2. 0

                          2. Fortsetzung: Termine

                          Regina Schaukrug
                          1. 0
                            Barksalot
                            1. 0
                              Regina Schaukrug
                              1. 0
                                Barksalot
                                1. 0
                                  Regina Schaukrug
                                  1. 0
                                    Barksalot
                                    1. 0
                                      Regina Schaukrug
                                      1. 0
                                        Barksalot
                                        1. 0
                                          Regina Schaukrug
                                    2. 0
                                      Rolf B
                              2. 0
                                beatovich
                                1. 0
                                  Regina Schaukrug
                                  1. 0
                                    beatovich
                              3. 0
                                Regina Schaukrug
                              4. 0
                                Rolf B
                  2. 2
                    Rolf B
                  3. 2
                    Rolf B
                    1. 0
                      MudGuard
                      1. 0
                        Rolf B
                        1. 0
                          dedlfix
                      2. 0
                        Regina Schaukrug
                    2. 0
                      Barksalot
                      1. 0
                        Regina Schaukrug
                        1. 0
                          Barksalot
                          1. 0
                            Regina Schaukrug
                            1. 0
                              Barksalot
                      2. 0
                        Rolf B
                        1. 0
                          Barksalot
                          1. 0
                            Rolf B
                            1. 0
                              Barksalot
                              1. 0
                                Regina Schaukrug
                                1. 0
                                  Barksalot
                                  1. 0
                                    Regina Schaukrug
                                    1. 0
                                      Barksalot
                                      1. 0
                                        Regina Schaukrug
                                        1. 0
                                          Barksalot
                                          1. 0
                                            Regina Schaukrug
                                            1. 0
                                              Barksalot
                                              1. 0
                                                Regina Schaukrug
                                                1. 0
                                                  Barksalot
                                                  1. 0
                                                    Regina Schaukrug
                                                    1. 0
                                                      Barksalot
                                                      1. 0
                                                        Regina Schaukrug
                                                        1. 0
                                                          Barksalot
                                                          1. 0
                                                            Regina Schaukrug
                                                            1. 0
                                                              Barksalot
                                                              1. 0

                                                                Anmerkung zu $mysqli: KW als Spalte einfügen

                                                                Barksalot
                                                                1. 0
                                                                  Regina Schaukrug
                                                                  1. 0
                                                                    Barksalot
                                                                    1. 0
                                                                      Regina Schaukrug
                                                                      1. 0
                                                                        Barksalot
                                                                        1. 0
                                                                          Rolf B
                                                                        2. 0
                                                                          Regina Schaukrug
                                                                          1. 0
                                                                            Barksalot
                                                                            1. 0
                                                                              Regina Schaukrug
                                                                              1. 0
                                                                                Barksalot
                                                                                1. 0
                                                                                  Regina Schaukrug
                                                                                  1. 0
                                                                                    Barksalot
                                                                                2. 0
                                                                                  Barksalot
                                                                                  1. 0
                                                                                    Rolf B
                                                                                    1. 0
                                                                                      Barksalot
                                                                                      1. 1
                                                                                        Regina Schaukrug
                                                                                        1. 0
                                                                                          Barksalot
                                                                                          1. 0
                                                                                            Rolf B
                                                                                      2. 0
                                                                                        Rolf B
                                                                                        1. 0
                                                                                          Barksalot
                                                                                  2. 0
                                                                                    Regina Schaukrug
                                                                                    1. 0
                                                                                      Barksalot
                                                                                      1. 0
                                                                                        Regina Schaukrug
                                                                                        1. 0
                                                                                          Barksalot
                                                                                          1. 0
                                                                                            Regina Schaukrug
                                                                                            1. 0
                                                                                              Barksalot
                                                                                              1. 0
                                                                                                Rolf B
                                                                                              2. 0
                                                                                                Regina Schaukrug
                                                                2. 0
                                                                  Rolf B
                                                                  1. 0
                                                                    Barksalot
                                                                    1. 0
                                                                      Rolf B
                3. 0
                  pl
                  • perl
                  • programmiertechnik
                  1. 0
                    Rolf B
                    1. 0
                      pl
                    2. 0
                      pl
          2. 0

            Einträge anordnen

            Barksalot
            1. 0
              pl
              1. 0
                Barksalot
                1. 0
                  Rolf B
                  1. 0
                    pl
  2. 1

    Danke!

    Barksalot
    1. 1
      Rolf B
      1. 0
        Barksalot
        1. 0
          Rolf B
          1. 0

            Grundsatzdiskussion bind ./. fetch_assoc und prepare ./. mysqli_real_escape_string

            Regina Schaukrug
            1. 0
              Rolf B
              1. 0
                Barksalot
                1. 0
                  Regina Schaukrug
                  1. 0
                    Rolf B
                    1. 0

                      Humor...

                      Regina Schaukrug
                      • menschelei