Teil von  SELFPHP
Professional CronJob-Service

Suche

International PHP Conference


WebTech Conference


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 
PHP Summit


Software Architecture Summit


:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
HTML5 Days


JavaScript Days


:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Tabellenzeilen abwechselnd farbig darstellen

Am Ende der Seite finden Sie das komplette Beispiel als Download.

Systemvoraussetzung

  • Linux
  • Windows
  • PHP 3
  • PHP 4
  • PHP 5

Datei(en)

tableColor.php

Problem


Gerade bei der Darstellung von dynamisch erzeugten unterschiedlichen Zeilenfarben einer Tabelle stellt sich die Frage, wie dieses Problem am einfachsten zu lösen ist. Es kommt immer wieder vor, dass man z. B. durch eine Datenbankabfrage mehrere Datensätze hat, die in einer Tabelle abwechselnd mit einer anderen Hintergrundfarbe dargestellt werden sollen.


Lösung

Handelt es sich bei der Methode für den Farbwechsel um zwei unterschiedliche Farben, so kann in diesem Fall der Modulos-Operator herangezogen werden. Wir teilen einfach eine Zahl (hier im Beispiel durch eine FOR-Schleife ermittelt) durch 2 und ermitteln dadurch den Restwert der Division.

Ist das Ergebnis ungerade (z. B. 1, 3, 5, 7), so erhalten wir als Restwert 1, bei einem geraden Restwert (z. B. 0, 2, 4, 6) dagegen die 0 (Null). Diese beiden Werte reichen vollständig aus, um damit über eine CSS-Klasse die Farbe zu bestimmen (siehe Beispiel).

Diese Berechnung ist völlig ausreichend für den Aufbau der Darstellung. Wir definieren in unserer Datei zwei verschiedene CSS-Klassen mit den Namen .row_0 und .row_1 (41 und 44).

Wichtig ist hier, dass sie einmal auf 1 (Eins) und einmal auf 0 (Null) enden. Somit haben wir einen Punkt geschaffen, den wir später automatisch austauschen können.

Wir durchlaufen jetzt unsere FOR-Schleife (53) und berechnen jeweils anhand der Variable $i den Modulos dafür. Da sich diese Variable bei jedem Schleifendurchlauf erhöht, erhalten wir als Rückgabewert der Modulos-Berechnung entweder eine 0 (Null) oder eine 1 (Eins). Diese müssen wir jetzt nur noch an unsere CSS-Definition anhängen (56) und haben somit die Farbe bestimmt.

Natürlich können Sie auch anstatt einer FOR-Schleife z. B. eine WHILE-Schleife (gerade bei Datenbankabfragen häufig genutzt) verwenden. Sie müssen dafür das Beispielskript nur geringfügig ändern (siehe Veränderung bei WHILE-Schleifen).

24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:

52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Abwechselnde Zeilenfarben</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.tableLine
{
    font-family:      Verdana,Arial,sans-serif;
    font-style:       normal;
    font-size:        9px;
    BORDER-TOP:       #A6A6A6 1px solid; 
    BORDER-LEFT:      #A6A6A6 1px solid; 
    BORDER-BOTTOM:    #A6A6A6 1px solid;
    BORDER-RIGHT:     #A6A6A6 1px solid;
}
.row_0 {
    background-color:        #FFFFFF;
}
.row_1 {
    background-color:        #E1E8F1;
}
-->
</style>
</head>
<body>
<table width="300" border="0" cellpadding="0" cellspacing="0" 
    class="tableLine">
<?PHP
  
for($i=0;$i<=9;$i++){
?>
  <tr>
    <td class="row_<?PHP echo $i 2?>">Reihe <?PHP echo $i?></td>
  </tr>
<?PHP
  
}
?>
</table>
</body>
</html>
Beispiel 5.1: tableColor.php



Abbildung 5.1: Ausgabe: Tabelle mit Spalten

Wir wollen unser Beispiel dahin verändern, dass jetzt die Datensätze aus einer Datenbank kommen und in einer WHILE-Schleife (4) ausgegeben werden. Bei einer WHILE-Schleife haben Sie keinen Wert, der sich automatisch erhöht (wie z. B. bei einer FOR-Schleife), sondern Sie müssen diesen Wert selbst setzen (3) und erhöhen (11).

01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
<table width="300" border="0" cellpadding="0" cellspacing="0" class="tableLine">
    <?PHP
    $i 
0;
    while(
$row = @mysql_fetch_row($result)){
    
?>
    <tr>
        <td class="row_<?PHP echo $i 2?>">Reihe
        <?PHP echo $i?></td>
    </tr>
    <?PHP
    $i
++;
    }
    
?>
</table>

Wie Sie sehen, haben wir hier auf einfache Art und Weise die Tabellenzeilen abwechselnd farbig dargestellt. Gerade bei solchen Problemstellungen können uns immer wieder mathematische Berechnungen weiterhelfen. Sie sollten daher immer im Vorfeld überlegen, ob die Lösung des Problems mit mathematischen Berechnungen einwandfrei darzustellen ist.



 


Dieses Skript aus dem SELFPHP KOCHBUCH wurde von SELFPHP unter dem "Tarif Mc500" von McAc.net-Webhosting erfolgreich ausgeführt und getestet!

Auf der Übersichtseite unter "McAc.net – Webhosting zu diesem Buch" finden Sie weitere Informationen zu dem Webhostingpaket, dass durch SELFPHP getestet wurde.




 

Download

Info   ZIP BZIP2 TARGZ
Größe   981.00 Byte 1.13 Kilobyte 1.05 Kilobyte

Alle Beispiele als PHP-Datei(en)

Hier haben Sie die Möglichkeit, sich sämtliche auf dieser Seite gezeigten Beispiele als PHP-Dateien direkt downzuloaden.

Umständliches Copy & Paste ist daher nicht mehr notwendig, da alle Beispiele sofort ausprobiert werden können.

Sie haben bei der Auswahl der bereitgestellten Downloads mehrere Möglichkeiten, je nachdem welches Komprimierungsverfahren Sie bevorzugen.

Zurück zur Übersichtsseite


 




:: Premium-Partner ::

Webhosting/Serverlösungen

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Kaspersky Labs GmbH weitere Sponsoren
 

:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 
 

Ausgewählter Tipp im Bereich PHP-Skripte


Datum/Uhrzeit von MySQL-Format ins deutsche Format und zurück

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


AJAX-Request erkennen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt
© 2005-2014 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de