Denkanstoß bei Daten auslesen!

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

  • Denkanstoß bei Daten auslesen!

    Hallo @all,

    bin neu hier und benötige mal einen Denkanstoß. Ich habe hier folgendes Script was ich geschrieben habe was aus einer DB Termine ausliest. Diese sind dort mit einen Timestamp gespeichert.

    Das funktioniert alles super genauso wie ich es will nur mit der Formatierung habe ich probleme.

    Also erstmal das Script:

    PHP-Code:
    $z=1;
             
    $user $_GET["user"];

        for(
    $begin_start$begin_start<=$begin_ende$begin_start++)
             {
              for(
    $count_zeit 0$count_zeit<=3$count_zeit++)
              {
              
    $check_time =
    strtotime($_GET["jahr"]."-".$_GET["monat"]."-".$_GET["tag"]." ".$begin_start.$zeit_array[$count_zeit]);

               
    $anfrage "SELECT * FROM tp_termine WHERE user_id = '$user
    AND start_termin <= '
    $check_time
    AND ende_termin >= '
    $check_time'";
               
    $anfrage_ergebnis mysql_query($anfrage);
                if(
    mysql_num_rows($anfrage_ergebnis) == 0)
                {
                echo 
    "<tr>";
                echo 
    "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                echo 
    "<td>kein termin</td>";
                echo 
    "<td>leer</td>";
                echo 
    "</tr>";
                }
                else
                {
                 while(
    $anfrage_daten mysql_fetch_object($anfrage_ergebnis))
                 {
                  echo 
    "<tr>";
                  echo 
    "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                  echo 
    "<td rowspan=\"".$z."\">".$anfrage_daten->betreff."</td>";
                  echo 
    "<td rowspan=\"".$z."\">Option</td>";
                  echo 
    "</tr>";
                 }

                }
    // Ende Termin Check
               
    if($begin_start == $begin_ende){break;};
              }
    // Ende for count
             
    }// Ende FOR begin und end 
    In der Adresszeile steht hinter der Datei noch ein GET: user=8&tag=05&monat=06&jahr=2007

    Das funktioniert ja auch alles super!

    Jetzt bekomme ich folgende Ausgabe:


    5:00 kein termin leer
    5:15 kein termin leer
    5:30 kein termin leer
    5:45 kein termin leer
    6:00 test2 Option
    6:15 test2 Option
    6:30 test2 Option
    6:45 kein termin leer
    7:00 kein termin leer
    7:15 kein termin leer
    7:30 kein termin leer
    7:45 kein termin leer
    8:00 test Option
    8:15 test Option
    8:30 test Option
    8:45 kein termin leer
    9:00 kein termin leer
    9:15 kein termin leer
    9:30 kein termin leer
    Das stimmt auch alles genau dort ist der Termin auch nur es soll nicht 3 mal da stehen sondern die Spalte mittels "rowspan" zusammen gemacht werden wo ein Termin ist.

    Jetzt habe ich schon ein paar Varianten probiert aber komme nicht drauf. Irgendwie muss ich für jeden erstmal die Anzahl zählen damit ich später die Zahl in rowspan eingeben kann.

    Also im endeffekt spielt sich das ganze NUR hier ab:

    PHP-Code:
    if(mysql_num_rows($anfrage_ergebnis) == 0)
                {
                echo 
    "<tr>";
                echo 
    "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                echo 
    "<td>kein termin</td>";
                echo 
    "<td>leer</td>";
                echo 
    "</tr>";
                }
                else
                {
                 while(
    $anfrage_daten mysql_fetch_object($anfrage_ergebnis))
                 {
                  echo 
    "<tr>";
                  echo 
    "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                  echo 
    "<td rowspan=\"".$z."\">".$anfrage_daten->betreff."</td>";
                  echo 
    "<td rowspan=\"".$z."\">Option</td>";
                  echo 
    "</tr>";
                 } 

    Hat jemand noch eine Idee?

    Danke schön!


    MFG

    Picard
    Zuletzt geändert von Picard_Jean-Luc; 06.06.2007, 16:18.

  • #2
    lies doch die regeln und brich deinen code um.

    du schickst sozusagen mehrere dutzend anfragen an die datenbank, um einen tag anzuzeigen? das ist nicht gut.. selektiere doch direkt alle einträge eines tages und gehe sie durch (z.b. in 15 min schritten). dabei speicherst du den aktuellen termin in einer variable zwischen. ist in den nächsten 15 min. nichts neues passiert, gibst du nichts aus. wurde dagegen ein neuer termin erreicht, legst du eine neue zeile an und schreibst da rein.

    Kommentar


    • #3
      Hi,

      danke für deine Antwort.
      Aber so richtig weiß ich nicht waß du meinst.
      Ich mein es funktioniert doch mit den Termin auslesen nur das in der Tabelle wenn ein Termin von 9:00 Uhr bis 10:00 geht das der Betreff von dem Termin 4mal da steht.

      Ich muss irgendwie das rowspan unterbringen aber mit der Zahl wie lange der Termin geht.

      Wenn du noch eine Idee hättest könntest du es mir in form von Quelltext zeigen? Versteh ich besser :-)


      Danke

      Kommentar


      • #4
        Original geschrieben von penizillin
        lies doch die regeln und brich deinen code um.

        Kommentar


        • #5
          Hm...ich probier die ganze Zeit.
          Ich werde als erstes die DB abfragen und dann die FOR Schleifen beginnen aber irgendwie komme ich nicht weiter...

          Kommentar


          • #6
            So, ich habe eine kleine Lösung erarbeitet. Diese ist aber nicht schön aber funktioniert.
            Habe aus den beiden Timestamps eine Formel entwickelt die mir genau den rowspan wert ausgibt. Aber da kommen schon wieder andere probleme auf. Wenn ein ein Termin über ein Tag hinaus geht wird er beim nächsten Tag nicht angezeigt. Da ist die Zeile einfach leer.

            PHP-Code:
            while($anfrage_daten mysql_fetch_object($anfrage_ergebnis))
                         {
            $rowspan = ($anfrage_daten->ende_termin-$anfrage_daten->start_termin)/60/15+1;

                if(
            $anfrage_daten->start_termin == $check_time)
                {    
                          echo 
            "<tr>";
                          echo 
            "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                          echo 
            "<td rowspan=\"".$rowspan."\">".$anfrage_daten->betreff."</td>";
                          echo 
            "<td rowspan=\"".$rowspan."\">".$rowspan."</td>";
                          echo 
            "</tr>";
                }
                else
                {
                    echo 
            "<tr>";
                    echo 
            "<td>".$begin_start.$zeit_array[$count_zeit]."</td>";
                echo 
            "</tr>";
                }
                         } 
            Wie gesagt solange das am selben Tag ist funktioniert es aber wenn es über ein Tag hinaus geht erkennt er zwar das am nächsten MOrgen der Termin weiter geht schreibt ihn aber nicht hin.

            Das ist also auch keine schöne art.

            Könntest du mir nicht einmal zeigen wie du es meinst?


            Danke....

            Kommentar


            • #7
              Schade das mit keiner weiterhelfen kann.
              Habe versucht den Code umzubrechen oder so aber klappt nicht.
              Komme nicht drauf was da penizillin meint.

              Mit der Formel klappt zwar aber nur für den einen Tag sobald es auf einen anderen Tag über geht geht es nicht mehr....


              MFG

              Picard

              Kommentar


              • #8
                Original geschrieben von Picard_Jean-Luc
                Komme nicht drauf was da penizillin meint.
                Wenn er sagt, Regeln lesen, meint er die Regeln - und wenn darin von bei "breitem" Quelltext entsprechende Umbrüche in den Text einfügen die Rede ist, dann heisst das, Achtung, große Überraschung, dass du bei langen Zeilen zwischendurch mal ab und zu per [enter] einen Zeilenumbruch einfügen sollst ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  So gemacht...sorry...aber deswegen bin ich trotzdem nicht mit meinen Problem weiter....

                  Kommentar

                  Lädt...
                  X