helmuthelmut2000
Goto Top

Zeilenfarbe von einer MSSQL DB ausgeben

Hallo,

Ich habe eine Frage zu meiner PHP-Seite.

Dort habe ich eine Tabelle wo ich mit Daten aus einer MSSQL DB ausgebe.
Da wechsle ich die Zeilenfarbe so:

$farbe="#FFFFFF"; Hintergrundfarbe 1
$farbe="#EEEEEE";
Hintergrundfarbe 2

Jetzt möchte ich aber bestimmte Zeilen mit bestimmten Farben ausgeben. Ich denke das ich die bestimmte
Farbe in der DB in einem Feld Speichere. Mit dem Namen Farbe. Wenn dann in dem Feld der Wert #FF0000
drin ist dann Sollte die Zeile in Rot erscheinen. Die anderen, die Keinen Wert in der DB haben sollten den
wechsel Hintergrund1 und Hintergrund2 machen.
Den Wert der Farbe in die DB speichern das ist mir Klar.

Aber wie mach ich das, das der Farbenwert aus der DB genommen wird und wenn keiner drin ist dann sollte der
Wechsel Hintergrund1 und 2 kommen?

Danke

Content-ID: 175587

Url: https://administrator.de/forum/zeilenfarbe-von-einer-mssql-db-ausgeben-175587.html

Ausgedruckt am: 11.04.2025 um 15:04 Uhr

nxclass
nxclass 01.11.2011 um 10:56:00 Uhr
Goto Top
Wenn Du die Tabellen zB. mit LEFT JOIN verbindest, wird dir doch entweder der Farbwert oder NULL zurückgeliefert !? .. dann kannst du doch dein Ergebnisfeld mit isset() prüfen.
helmuthelmut2000
helmuthelmut2000 03.11.2011 um 10:23:59 Uhr
Goto Top
Hallo,

Kannst du mir das mit dem LEFT JOIN etwas besser erklären?
Wie mach ich das denn Richtig?

Danke
nxclass
nxclass 03.11.2011 um 11:03:52 Uhr
Goto Top
Dazu benötige ich mehr Informationen wie deine Tabellen in der Datenbank aufgebaut sind.
Speziell wie Du die Information ablegst welche für die besondere Farbe verantwortlich ist. Evtl. reicht da auch ein zusätzliches Feld 'mark' mit den Werter 0 oder 1.
Momentan kann ich nur in die Glaskugel schauen.

LEFT JOIN
zB: FROM A LEFT JOIN B:
alle Werte aus A - und - alle Werte aus B oder NULL
helmuthelmut2000
helmuthelmut2000 03.11.2011 um 13:40:06 Uhr
Goto Top
Hallo,

Ich hab in der Tabelle nur ein paar Spalten:

schluessel (PS, int, Nicht NULL)
kunde (nvarchar(255), NULL)
auftrag (nvarchar(255), NULL)
usw

Jetzt würde ich eine Spalte dazumachen

mark (nvarchar(255), NULL)
Dort ist dann bei keiner Frabe die NULL drin.
Dann sollte der wechsel kommen.
Und wenn ich die Farbe drin hab z.B. #FF0000
dann sollte die Zeile rot sein.
nxclass
nxclass 03.11.2011 um 14:34:04 Uhr
Goto Top
Dann sollte der wechsel kommen.
die Farbdarstellung ist eine Sache der Darstellung, finde ich, und sollte somit in CSS und HTML erledigt werden.

somit machst du einfach einen Farbwechsel und prüfst auf den Wert in 'mark'
$data = meineMssqlQueryFuntion( 'SELECT * FROM [tabelle]' );  
foreach ($data as $i=>$row) {

  $trCss = isset($row['mark']) ? $row['mark'] : ( ($i%2==0)? 'grau' : 'weis' );  // CSS Klasse oder ein Farbwert für die <TR> aus der Datenbank oder abwechselnd   

  // Aufbau der Tabellen Zeile

}
.. so in etwa könnte man das machen.
helmuthelmut2000
helmuthelmut2000 03.11.2011 um 20:45:01 Uhr
Goto Top
Hallo,

Bei deinem code muß der Farbwechsel in der CSS stehen.
Bei mir steht der am Anfang von der Tabelle, geht das dann auch?
nxclass
nxclass 04.11.2011 um 08:13:08 Uhr
Goto Top
geht das dann auch?
... ob Du nun mit Farbwerten oder CSS Klassen arbeitest ist ganz Dir überlassen. Aber ich finde man sollte den Code sauber halten und dazu gehört auch das trennen von CSS, HTML, JS und PHP.


... ich glaube in CSS3 gibt es eine einfache Möglichkeit so einen Farbwechsel umzusetzen
tr:nth-child(odd)		{ background-color:#eee; }
tr:nth-child(even)		{ background-color:#fff; }
... ansonsten finde ich es nicht schlimm in jeder TR ein 'class' Attribute einzufügen.