Vergleichsproblem Datensortierung

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

  • Vergleichsproblem Datensortierung

    Hi@all

    ich weiß gar nicht so richtig wie ich die Themenüberschrift bezeichnen sollte.
    Also es stellt sich folgendes Problem:

    Ich habe in einer Termindatenbak folgende Werte

    Termin1 | 09:00 | 10:25

    Diesen möchte ich gern in einer Tabelle ausgeben

    09:00 | Termin1
    09:30 | Termin1
    10:00 | Termin 1
    10:30 |
    11:00 |

    Mein Vergleichscode:
    PHP-Code:
    ...
      if (
    strtotime($dbwert2) >= strtotime($tabellenzeit) )
      {
       if ( 
    strtotime($dbwert3) <= strtotime($next_tabellenzeit))
       {
        echo 
    $dbwert1;
    ... 
    Sozusagen möchte ich den Termin Zeilenübergreifend eintragen
    Jedoch funzt es leider nicht so wie ich will.
    Im Beispiel oben ist der dbwert2(09:00) gleich dem Tabellenwert(09:00)
    , rein theoretisch also echo, der next_Tabellen jedoch ungleich, also doch kein echo
    usw.

    Ich hoffe ich habe mich einigermßen verständlich ausgedrückt
    alle Variablen werden ordnungsgemäß übergeben, keine Scriptfehler.

    Thy@all für jede Hilfe

  • #2
    Deine Fehlerbeschreibung lässt zu wünschen übrig. Du hast zwar geschrieben, was du erreichen willst, nicht aber, was passiert. Und die drei Zeilen Quellcode sind auch extrem nichtssagend ... für mich sieht das erstmal so aus, als würde das passen, aber es sind eben auch nur drei Zeilen.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Kann es sein, dass du deine Termine nach dem Datum/zeit einfach nur sortieren willst?

      mfg

      Kommentar


      • #4
        Hi@all

        @Blackgreetz
        Nein! ich will nicht sortieren, ich will die Daten nur ausgeben.


        Also es gibt keinen Fehler, nicht wirklich.
        Es passiert halt nur nicht das was ich erwünsche.

        Der Termin wird nicht Zeilenübergreifend dargestellt.
        Es wird immer nur die erste (Terminstart) ausgegeben,was ja logisch ist, da ich den Zweiten wert mit der nächsten Tabllezeile vergleiche und weil
        dieser vergleich nicht stimmt erfolgt auch keine ausgabe.

        Also es soll angezeigt werden wenn der Startzeitpunkt mit der Tabllenzeile übereinkommt (ab 09:00) bis Ablaufzeit, also noch in Zeile 09:30, 10:00, dann nicht mehr weil ja 10:25 vor 10:30 ist.

        Mehr Code als unten aufgeführt kann ich nicht bieten, weil nicht mehr da ist.

        Ich habe
        $startzeit = Tabellenzeilenwert
        $endzeit = Tabellenzeilenwert nächste Zeile
        $dbwert2 = Terminstart
        $dbwert3 = Terminende

        Alle Werte wandle ich per strtotime um vergleich diese dann und los solls gehen.

        Muss auch funktionieren wenn ich einen Termin habe zum Beispiel:
        Termin2 | 10:00 | 10:15

        Der dürfte dann logischerweise nur in Tabellenzeile 10:00 stehen.

        PHP-Code:
        ...
        #Datenbankwert
             
        $dbwert1="Termin1";
             
        $dbwert2="09:00";
             
        $dbwert3="10:25";
             
        #Tabelle
            
        echo"<table>";
             for (
        $i $i<24 $i++ )
             {
                echo 
        "<tr bgcolor='#E1E1E1'>";
                echo 
        "<td width='10%' valign='top'>".sprintf("%02d"$i).":00 Uhr</td>";
                echo 
        "<td valign='top'>";
                
        $startzeit sprintf("%02d"$i).":00";
                
        $endzeit   sprintf("%02d"$i).":30";
                if (
        strtotime($dbwert2) < strtotime($startzeit) )
                {
                  if ( 
        strtotime($dbwert3) > strtotime($endzeit) )
                  {
                   echo 
        $dbwert1;
                  }
                 }
                echo 
        "</td>";
                echo 
        "<tr bgcolor='#C8C8C8'>";
                echo 
        "<td width='10%' valign='top'>".sprintf("%02d"$i).":30 Uhr</td>";
                echo 
        "<td valign='top'>";
                
        $startzeit sprintf("%02d"$i).":30";
                
        $endzeit   sprintf("%02d"$i+1).":00";
                if (
        strtotime($dbwert2) < strtotime($startzeit) )
                {
                 if ( 
        strtotime($dbwert3) > strtotime($endzeit) )
                 {
                  echo 
        $dbwert1;
                 }
                 echo 
        "</td>";
                echo 
        "</tr>";
             }
            echo 
        "</table>"
        ... 
        Vielleicht hat jemand bei der Gelegenheit auch eine bessere Idee zur Darstellung der Uhrzeittabelle.

        Thx@all
        Zuletzt geändert von Prominenter; 12.04.2008, 22:50.

        Kommentar

        Lädt...
        X