Monat in Schleife ausgeben

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

  • Monat in Schleife ausgeben

    Hi Leute !

    Ich stehe gerade vor einem Problem und weiß nicht so ganz, wie ich das einfach und schnell lösen kann:
    Ich habe mehrere Jahresdaten in einer DB, die ich über eine Schleife in einer Tabelle ausgeben lasse.
    Z.B. von jedem Monat sagen wir mal 3 verschiedenen Datensätze. Jetzt möchte ich gerne zwischen diesen Datensätzen eine Zeile mit dem jeweiligen Monat einfügen, um das ganze ein wenig abzugrenzen und die Übersichtlichkeit zu verbessern.
    Das ganze sollte in etws so aussehen:

    -------Januar--------
    01.01.03 blablabla
    21.01.03 blablabla
    31.01.03 blablabla

    -------Februar------
    05.02.03 blablabla
    26.02.03 blablabla

    --------März---------
    31.03.03 blablabla
    ...
    ..
    .
    etc...

  • #2
    Re: Monat in Schleife ausgeben

    so,

    einfache methode:
    Code:
    alterMonat = 0;
    while (ich_lese_aus) {
      if (alterMonat != dieserMonat) {
        alterMonat = dieserMonat;
        macheLinie();
      }
    }
    wenn dich der erste strich stört, brauchste noch ne flag.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Re: Monat in Schleife ausgeben

      du willst also einen gruppenwechesel programmieren.

      suche hier im forum nach diesem stichwort, das haben wir schon mehrmals hier beschrieben.

      EDIT:
      @Hund: pfui, nicht immer fertige lösungen zum fressen vorwerfen, sondern die leute mal selbst suchen lassen ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: Re: Monat in Schleife ausgeben

        EDIT:
        @Hund: pfui, nicht immer fertige lösungen zum fressen vorwerfen, sondern die leute mal selbst suchen lassen ...
        tschuldigung, ist doch nur halbfertig.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          @ Wahsaga
          Erstmal danke für das Stichwort, wenn man das nicht weiß sucht man natürlich vergeblich....

          Ich habe mir mal die Threads durchgelesen, und mir ist auch im Groben klar wie der Gruppenwechsel funzt, aber ich komme irgendwie nicht so recht dahinter wie ich das jetzt bei mir umsetze....
          Hier ist mein bisheriger Code:

          PHP-Code:
          $sql mysql_query("SELECT * FROM termine WHERE MID(datum,1,4)='$jahr' ORDER BY datum");
          while (
          $data mysql_fetch_array($sql)) // Schleife für Ausgabe der Datensätze
          {
                
          $datum1 split("-",$data['datum']); // Datumsformat von MySQL-Format in deutsches umwandeln
                
          $datum $datum1[2].".".$datum1[1].".".$datum1[0];

                
          $zeit1 split(":",$data['zeit_start']); // Zeitformat von MySQL-Format umwandeln
                
          $startzeit $zeit1[0];
                
          $zeit2 split(":",$data['zeit_stop']);  // Zeitformat von MySQL-Format umwandeln
                
          $stopzeit $zeit2[0];

                echo 
          " <tr valign=\"top\"> "// Ausgabe der Datensätze, pro Datensatz eine Reihe
                
          echo " <td width=\"100\" align=\"center\">" $datum "</td>";
                echo 
          " <td width=\"200\" align=\"center\">" $data['boerse'] . "</td>";
                echo 
          " <td width=\"200\" align=\"center\"><b>" $data['ort'] . "</b></td>";
                echo 
          " <td width=\"80\" align=\"center\">" $startzeit "-" $stopzeit ." Uhr""</td>";
                echo 
          " <td width=\"120\" align=\"center\">" $data['veranstalter'] . "</td>";
                echo 
          " <td width=\"200\" align=\"center\">" $data['info'] . "</td>";
                echo 
          " </tr> ";

          Wenn ich das jetzt so versuche, wie "derHund" gesagt hatte, bekomme ich jede Zeile eine Ausgabe mit dem Monat, und nicht nur einmal für X Einträge vom Januar....
          Helft mir doch nochmal auf die Sprünge!
          Zuletzt geändert von el_espiritu; 20.12.2003, 14:08.

          Kommentar


          • #6
            ich kann meinen pseudo-code bei dir nirgends finden ...
            komischerweise funktioniert das nach diesem prinzip überall, wo ichs einsetze, oder hab ich was vergessen zu schreiben?
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Original geschrieben von derHund
              ich kann meinen pseudo-code bei dir nirgends finden ...
              ich auch nicht - eine if-abfrage müsste für das gewünschte ja wenigstens irgendwo auftauchen ...

              oder haben wir es hier schlicht und einfach mit einem weiteren fall von "hier ist mein code, baut mir das mal ein" zu tun? so läuft's hier natürlich nicht - der denkanstoss ist da, jetzt ist erstmal ein bisschen selber nachdenken gefragt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von derHund
                ich kann meinen pseudo-code bei dir nirgends finden ...
                komischerweise funktioniert das nach diesem prinzip überall, wo ichs einsetze, oder hab ich was vergessen zu schreiben?
                Ich hatte den Code bereits eingebaut, mit dem Ergebnis das ich nach jedem Datum die Ausgabe des Monats hatte, und nicht nur nach jedem Wechsel wie es sein sollte....deswegen hatte ich ihn wieder rausgeschmissen....

                Kommentar


                • #9
                  ... und woran sollten die anderen user jetzt erkennen können, was du falsch gemacht hast???

                  Kommentar


                  • #10
                    PHP-Code:
                    $monat_alt 01;
                    $sql mysql_query("SELECT * FROM termine WHERE MID(datum,1,4)='$jahr' ORDER BY datum");
                    while (
                    $data mysql_fetch_array($sql)) // Schleife für Ausgabe der Datensätze
                    {
                          
                    $datum1 split("-",$data['datum']); // Datumsformat von MySQL-Format in deutsches umwandeln
                          
                    $datum $datum1[2].".".$datum1[1].".".$datum1[0];

                          
                    $zeit1 split(":",$data['zeit_start']); // Zeitformat von MySQL-Format umwandeln
                          
                    $startzeit $zeit1[0];
                          
                    $zeit2 split(":",$data['zeit_stop']);  // Zeitformat von MySQL-Format umwandeln
                          
                    $stopzeit $zeit2[0];
                          
                          if (
                    $monat_alt != $datum1[1])
                          {
                              
                    $monat_alt $datum1[1];
                            echo 
                    "<tr><td>--------------------------------------------</td></tr>";
                          }

                          echo 
                    " <tr valign=\"top\"> "// Ausgabe der Datensätze, pro Datensatz eine Reihe
                          
                    echo " <td width=\"100\" align=\"center\">" $datum "</td>";
                          echo 
                    " <td width=\"200\" align=\"center\">" $data['boerse'] . "</td>";
                          echo 
                    " <td width=\"200\" align=\"center\"><b>" $data['ort'] . "</b></td>";
                          echo 
                    " <td width=\"80\" align=\"center\">" $startzeit "-" $stopzeit ." Uhr""</td>";
                          echo 
                    " <td width=\"120\" align=\"center\">" $data['veranstalter'] . "</td>";
                          echo 
                    " <td width=\"200\" align=\"center\">" $data['info'] . "</td>";
                          echo 
                    " </tr> ";

                    Zuletzt geändert von el_espiritu; 21.12.2003, 15:35.

                    Kommentar


                    • #11
                      komsich,

                      bei mir funktioniert dein code, so wie er soll ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Gut, es funktioniert wirklich, war ein Fehler meinerseits
                        Hier mein Code:
                        PHP-Code:
                        $monate = array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'); // Array für Monatsnamen
                        $monat_alt 01// Variable für Vetgleich festlegen
                        $zaehler 0// Zähler für Array auf 0 setzen

                        echo "<tr><td colspan=\"6\" class=\"monatlinie\">".$monate[$zaehler]."<td></tr>"// Generell Ausgabe des Monats "JANUAR"
                        $zaehler++; // Zähler für Array um 1 erhöhen

                        $sql mysql_query("SELECT * FROM termine WHERE MID(datum,1,4)='$jahr' ORDER BY datum"); // MySQL Abfrage für alle Datensätz aus dem ausgewählten Jahr
                        while ($data mysql_fetch_array($sql)) // Schleife für Ausgabe der Datensätze
                        {
                              
                        $datum1 split("-",$data['datum']); // Datumsformat von MySQL-Format in deutsches umwandeln
                              
                        $datum $datum1[2].".".$datum1[1].".".$datum1[0];

                              
                        $zeit1 split(":",$data['zeit_start']); // Zeitformat von MySQL-Format umwandeln
                              
                        $startzeit $zeit1[0];
                              
                        $zeit2 split(":",$data['zeit_stop']);  // Zeitformat von MySQL-Format umwandeln
                              
                        $stopzeit $zeit2[0];
                              
                              if (
                        $monat_alt != $datum1[1]) // Abfrage für Gruppenwechsel
                              
                        {
                                      
                        $monat_alt $datum1[1];
                                    echo 
                        "<tr><td colspan=\"6\" class=\"monatlinie\">".$monate[$zaehler]."<td></tr>"// Ausgabe des Monatnamens
                                    
                        $zaehler++; // Zähler für Array um 1 erhöhen
                              
                        }

                              echo 
                        " <tr valign=\"top\"> "// Ausgabe der Datensätze, pro Datensatz eine Reihe
                              
                        echo " <td width=\"80\" align=\"center\">" $datum "</td>";
                              echo 
                        " <td width=\"200\" align=\"center\">" $data['boerse'] . "</td>";
                              echo 
                        " <td width=\"180\" align=\"center\"><b>" $data['ort'] . "</b></td>";
                              echo 
                        " <td width=\"80\" align=\"center\">" $startzeit "-" $stopzeit ." Uhr""</td>";
                              echo 
                        " <td width=\"120\" align=\"center\">" $data['veranstalter'] . "</td>";
                              echo 
                        " <td width=\"240\" align=\"center\">" $data['info'] . "</td>";
                              echo 
                        " </tr> ";

                        Danke für eure Hilfe und frohe Weihnachten!

                        Kommentar

                        Lädt...
                        X