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-Key: 175587

Url: https://administrator.de/contentid/175587

Printed on: April 18, 2024 at 04:04 o'clock

Member: nxclass
nxclass Nov 01, 2011 at 09:56:00 (UTC)
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.
Member: helmuthelmut2000
helmuthelmut2000 Nov 03, 2011 at 09:23:59 (UTC)
Goto Top
Hallo,

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

Danke
Member: nxclass
nxclass Nov 03, 2011 at 10:03:52 (UTC)
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
Member: helmuthelmut2000
helmuthelmut2000 Nov 03, 2011 at 12:40:06 (UTC)
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.
Member: nxclass
nxclass Nov 03, 2011 at 13:34:04 (UTC)
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.
Member: helmuthelmut2000
helmuthelmut2000 Nov 03, 2011 at 19:45:01 (UTC)
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?
Member: nxclass
nxclass Nov 04, 2011 at 07:13:08 (UTC)
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.