Tabellenhintergrundfarbe über einen wert aus mysql ändern

Alexnder Ruff

Mitglied
Moin Moin Forum,

ich habe einmal folgende frage.

Ich möchte eine Tabelle erstellen, bei der sich die Hintergrundfarbe der einzelnen Zellen, je nachdem was für ein wert in einer bestimmen Zelle(der in Mysql DB ist) ist, ändert.

Ist so etwas überhaupt möglich
 
Natürlich kannst Du das machen, hier ein kleiner Ansatz wie es ausschauen könnte
PHP:
<table border="1" width="100%">
<tr>
<?php
$sql = "SELECT * FROM  daten  WHERE  Id = '".$_SESSION["user_id"]."'";
$result = mysql_query ($sql); 
$data = mysql_fetch_array ($result); //erstmal alles in ein array knallen...
for ($i = 1; $i <= 16; $i++){
    If($data['$i'] < 1){ 
        echo '<td bgcolor="#FF0000">';
        echo $data['$i'];
        echo '</td>';
    }else{
        echo '<td bgcolor="#0000FF">';
        echo $data['$i'];
        echo '</td>';
    }
}
?>
</tr>
</table>


mfg Spikaner

P.S. ungetestet und nur mal eben aus der "Hüfte geschossen" ;)
 
Zuletzt bearbeitet:
Nabend Spikaner,

Ich denke mal das es genau das ist was ich suche, da ich leider nur ein völliger anfänger bin was mysql angeht komme ich nicht weiter.

Ich habe die SQL abfrage so abgeändert das auch die Daten raus kommen die ich benötige.

SELECT `Mieter` FROM rcvs.stellplatz
WHERE `beschreibung`= 'A20';

Sollte der wert vom Mieter den wert 'leer' ausgeben soll der hintergrund auf grün geändert werden. Ergibt die Abfrage einen anderen wert als 'leer' soll der Hintergrund auf auf rot geändert werden.

Kannst Du mir da vielleicht noch mal auf die sprünge helfen

Danke,
Alex

Ach ja Maik, die sache brauche ich für eine andere sache.

Danke auch Dir !
 
Zuletzt bearbeitet:
Bitteschön.. (Farben müssen noch angepasst werden aber das dürfte ja kein Problem sein ;) )

PHP:
<table border="1" width="100%">
<?php
$sql = "SELECT id,rcvs FROM test2";
$result = mysql_query ($sql); 
$i = 0;
while($data = mysql_fetch_array ($result)){
    $daten[$i][0] = $data['id'];
    $daten[$i][1] = $data['rcvs'];

    If($daten[$i][1] == "leer"){ 
        echo '<tr><td bgcolor="#FF0000">';
        echo $daten[$i][1];
        echo '<tr></td>';
    }else{
        echo '<tr><td bgcolor="#0000FF">';
        echo $daten[$i][1];
        echo '<tr></td>';
    }
    $i++;
}
?>
</table>
aufbau der Tabelle
Code:
CREATE TABLE IF NOT EXISTS `test2` (
  `id` int(10) NOT NULL auto_increment,
  `rcvs` text collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=11 ;

--
-- Daten für Tabelle `test2`
--

INSERT INTO `test2` (`id`, `rcvs`) VALUES
(1, 'A20'),
(2, 'A21'),
(3, 'leer'),
(4, 'leer'),
(5, 'A23'),
(6, 'A24'),
(7, 'A1'),
(8, 'leer'),
(9, 'A40'),
(10, 'A15');

mfg Spikaner

P.S. Falls jemand eine elegantere Lösung weiß/hat nur her damt ;)
 
Zuletzt bearbeitet:
Vielen Dank Spikaner,

hat super geklapt. ich lade jetzt ein Bild anstatt die hintergrundfarbe zu ändern.
Mein Code sieht jetzt folgender maßen aus.

<?php
$sql = "SELECT Mieter,beschreibung FROM `stellplatz` WHERE `beschreibung` ='A20'";
$result = mysql_query ($sql);
$i = 0;
while($data = mysql_fetch_array ($result)){
$daten[$i][0] = $data['beschreibung'];
$daten[$i][1] = $data['Mieter'];

If($daten[$i][1] == "LEER"){
echo '<tr><a href="infos.php?beschreibung=A2" target="_blank"><img src="gruen.png" width="10" height="20" border="0" /></a>';
//echo $daten[$i][1];
echo '<tr></td>';
}else{
echo '<tr><a href="infos.php?beschreibung=A20" target="_blank"><img src="rot.png" width="10" height="20" border="0" />';
//echo $daten[$i][1];
echo '<tr></td>';
}
$i++;
}
?>

Die Tabele ist folgender Maßen aufgebaut:

CREATE TABLE IF NOT EXISTS `stellplatz` (
`id` int(10) NOT NULL auto_increment,
`Objektnr` varchar(255) collate latin1_german2_ci NOT NULL default '',
`nr` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Historie` int(11) NOT NULL default '0',
`Ext_einheitennummer` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Mieter` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Einheitenstr` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Dat_einzug` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Dat_auszug` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Nutzungsklasse` varchar(255) collate latin1_german2_ci NOT NULL default '',
`Nutzungsart` varchar(255) collate latin1_german2_ci NOT NULL default '',
`beschreibung` varchar(255) collate latin1_german2_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=189 ;

Wäre es jetzt noch möglich in den Bereich:

"infos.php?beschreibung=A20 die A20 durch den Wert $daten[$i][0] = $data['beschreibung']; aus den MySql Array zu ersetzen ?

Alex
 
klar...
PHP:
echo '<tr><a href="infos.php?beschreibung='.$daten[$i][0].'" target="_blank"><img src="rot.png" width="10" height="20"
mal heben hingetipselt.. kann sein das Du die " bzw ' noch abändern musst aber dürfte so funktionieren ... '.$daten[$i][0].' ist der "Schlüssel"

mfg Spikaner

P.S. Ich freue mich immer über eine positive Bewertung ;)
 
Zurück