kostenloser Webspace werbefrei: lima-city


farben ändern in tabelle mit zeitabständen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ronny-mahlow

    ronny-mahlow hat kostenlosen Webspace.

    hallo leute,
    mein vorhaben sieht wie folgt aus:

    ich möchte eine tabelle mit untersuchungsdaten erstellen, tabelle und abfrage zu mySQL funktioniert. Jetzt möchte ich aber, das die zellen vom ablaufdatum automatisch farblich hinterlegt werden. (grün = alles über 1jahr, gelb = unter 1jahr, orange = unter 2monate und rot = alles was abgelaufen ist)

    da ich noch wenig erfahrungen hab im erstellen, fehlt mir da die idee bzw den lösungsweg dazu

    mfg ronny
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Was mir spontan dazu einfällt:

    Die Zeitabstände kannst du in PHP überprüfen und berechnen. Je nach Zeitabstand definierst du bei der Zelle eine CSS-Klasse wie zB.
    <td class="green">text</td>
    für alles über 1 Jahr.

    Im CSS-File definierst du dann
    td.green { background-color: green; }

    So fährst du fort, bis du alle deine Zeitabstände mit der gewünschten Farbe hinterlegt hast. :wink:

    Beitrag zuletzt geändert: 17.3.2011 12:06:52 von wagnerm
  4. Wirklich praktisch in diesem Zusammenhang ist auch der sog. Trinitätsoperator.

    http://www.phpbar.de/w/Trinit%C3%A4ts-Operator



    Ansonsten kannst du die Hintergrundfarbe auch direkt über den style Tag definieren.
    http://www.css4you.de/background-color.html




    Edit:
    Was ihr alle gegen den Trin.-operator habt.
    Sicher: Exzessiv benutzt trägt er garantiert nicht zur Lesbarkeit bei. Aber bei soetwas simplem wie dem hier ist es durchaus sinnvoll.
    Es mag eine geschmackssache sein, aber ich habe für mich persönlich die Erfahrung gemacht, dass der Trinitätsoperator bei solchen Dingen sehr nützlich ist, und - im Gegensatz zu einem riesigen Switch bspw. - durchaus auch zur Lesbarkeit des Codes beitragen kann.

    Beitrag zuletzt geändert: 17.3.2011 20:22:19 von adrians
  5. adrians schrieb:
    Wirklich praktisch in diesem Zusammenhang ist auch der sog. Trinitätsoperator.

    http://www.phpbar.de/w/Trinit%C3%A4ts-Operator



    Ansonsten kannst du die Hintergrundfarbe auch direkt über den style Tag definieren.
    http://www.css4you.de/background-color.html


    Der Trinitätsoperator ist sicher praktisch, trägt aber mit Sicherheit nicht zur besseren Lesbarkeit des Codes bei. Dem Interpreter ist es meiner Meinung nach aber ziemlich egal, ob du den Trinitätsoperator oder eine einfache "if-then-else"- oder "switch-case"-Anweisung verwendet. Aus diesem Grund würde ich den Trinitätsoperator eher vermeiden. Nichts für ungut! :wink:
  6. Zur Berechnung der Zeitabstände hilft die folgende Funktion weiter:
    mktime()

    Über den Timestamp lässt sich der Rest dann einfach berechnen.
    Eine Alternative wäre, das Ganze direkt in der MySQL Abfrage zu berechnen.
  7. Autor dieses Themas

    ronny-mahlow

    ronny-mahlow hat kostenlosen Webspace.

    Was mir spontan dazu einfällt:

    Die Zeitabstände kannst du in PHP überprüfen und berechnen. Je nach Zeitabstand definierst du bei der Zelle eine CSS-Klasse wie zB.
    <td class="green">text</td>
    für alles über 1 Jahr.
    Im CSS-File definierst du dann
    td.green { background-color: green; }

    So fährst du fort, bis du alle deine Zeitabstände mit der gewünschten Farbe hinterlegt hast. :wink:


    könntest du bitte mir das etwas genauer erklären, wie ich es bei mir mit einbinden könnte? Ich habe es bei mir so eingerichtet:
    <?php
    
      while($row=mysql_fetch_object($ergebnis)){
        echo '<tr>'."\r\n";
    
        echo '<td>'.$row->ID.'</td>'."\r\n";
        echo '<td>'.$row->name.'</td>'."\r\n";
        echo '<td>'.$row->vorname.'</td>'."\r\n";
        echo '<td>'.$row->grad.'</td>'."\r\n";
        echo '<td>'.$row->wann.'</td>'."\r\n";
        echo '<td>'.$row->bis.'</td>'."\r\n";
        echo '<td>'.$row->ort.'</td>'."\r\n";
        echo '<td>'.$row->bemerkungen.'</td>'."\r\n";
    
        echo '<tr>'."\r\n";
      }
    
    ?>

    die Untersuchung soll bei wann stehen, und das Ablaufdatum soll bei "bis" stehen und diese Angabe soll farblich hinterlegt werden
  8. Leider weiß ich grad die Funktionen für das aktuelle Datum (hab ich mal mit date() angenommen und eine Zeitdifferenz (hab ich einfach mal [1Jahr] hingeschrieben) nicht. Die kannst du aber sicher im PHP Manual nachschlagen.

    Also so in etwa hab ich mir das gedacht:
    <?php
    
      while($row=mysql_fetch_object($ergebnis)){
        echo '<tr>'."\r\n";
    
       // hier berechnest du den Zeitabstand, zB
       switch ([date()] - $row->wann) {
         case "[1Jahr]":
              $strCSSClass = "class=\"green\"";
              break;
         case ...:
              $strCSSClass = "class=\"yellow\"";
              break;
         default:
              $strCSSClass = "";
       }
    
        echo '<td>'.$row->ID.'</td>'."\r\n";
        echo '<td>'.$row->name.'</td>'."\r\n";
        echo '<td>'.$row->vorname.'</td>'."\r\n";
        echo '<td>'.$row->grad.'</td>'."\r\n";
        echo '<td " . $strCSSClass . ">'.$row->wann.'</td>'."\r\n";
        echo '<td>'.$row->bis.'</td>'."\r\n";
        echo '<td>'.$row->ort.'</td>'."\r\n";
        echo '<td>'.$row->bemerkungen.'</td>'."\r\n";
    
        echo '<tr>'."\r\n";
      }
    
    ?>


    Beitrag zuletzt geändert: 17.3.2011 17:32:33 von wagnerm
  9. adrians schrieb:
    Wirklich praktisch in diesem Zusammenhang ist auch der sog. Trinitätsoperator.

    http://www.phpbar.de/w/Trinit%C3%A4ts-Operator



    Meine Güte! Der trinitäts-Operator hat weiss Gott nichts zu tun mit dem, was er machen will. Davon rate ich ab! Immer schön ausschreiben, das ganze, und in geschwungene Klammern {} damit, etwas anderes gibt es nicht.
  10. misc schrieb:
    Meine Güte! Der trinitäts-Operator hat weiss Gott nichts zu tun mit dem, was er machen will. Davon rate ich ab! Immer schön ausschreiben, das ganze, und in geschwungene Klammern {} damit, etwas anderes gibt es nicht.

    Der Operator hat zwar nicht direkt etwas mit dem Beispiel zu tun,
    da ich hier auch zu einem switch raten würde, falls noch mehr Fälle eintreten,
    aber m.M. kann er sehr wohl nützlich sein.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!