Tabelle farbig darstellen, aber wie ?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Tabelle farbig darstellen, aber wie ?

Beitrag von Condor »

Hallo,
ich habe zwei kleine probleme.
1. Wie kann ich einer Tabelle, Zeilenweise andere Farben zuweisen, wenn die Tabelle aus einer
DB generiert wird ? So sieht mein Code bis jetzt aus:

Code: Alles auswählen

<?
if (!eregi("modules.php", $PHP_SELF)) {
    die ("You can't access this file directly...");
}

require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));

include("header.php");
$index=1;

OpenTable();
// Verbindung zur DB
$user   = "";
$pass   = "";
$server = "";
$dbase  = "";
$table  = "";
$conn = @mysql_connect($server, $user, $pass);

@mysql_select_db ($dbase) or  die ("Kann Datenbank nicht finden");

if(!isset($sort)) {
    $result = mysql_query("SELECT * FROM $table ORDER by punkte DESC, tordiff DESC", $conn);
} else {
    $result = mysql_query("SELECT * FROM $table ORDER BY $sort DESC", $conn);
}


   $number = mysql_num_rows($result);
   echo "<P>Es sind $number Datensätze gelesen worden.</P>";
   echo "<TABLE BORDER=1>";
   echo "<TR>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort'>Platz</A></TD>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort&sort=team'>Verein</A></TD>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort&sort=punkte'>Punkte</A></TD>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort&sort=gtore'>ET</A></TD>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort&sort=btore'>GT</A></TD>";
   echo "<TD><A HREF='$PHP_SELF?name=Tabellesort&sort=tordiff'>Diff</A></TD>";
   echo "</TR>";

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
      echo "<TR>";
      echo "<TD>";
      $platz++;
      echo $platz;
      echo "</TD>";
      echo "<TD>";
      echo $row['team'];
      echo "</TD>";
      echo "<TD>";
      echo $row['punkte'];
      echo "</TD>";
      echo "<TD>";
      echo $row['gtore'];
      echo "</TD>";
      echo "<TD>";
      echo $row['btore'];
      echo "</TD>";
      echo "<TD>";
      echo $row['tordiff'];
      echo "</TD>";
      echo "</TR>";
   }

echo "</TABLE>";

CloseTable();
include("footer.php");
?>
Die erste zeile die ausgegeben wird sollte z.B Weiss bleiben, die zweite aber Grau,
die dritte wieder Weiss, die vierte wieder grau und so weiter. Wie kann ich das machen ?

2. Wie kann ich mein Script erweitern, das wenn man nach Verein sortiert, nicht Aufsteigend(DESC),
sondern Absteigend (ASC) sortiert wird ? Ich habe schon mehrere Möglichkeiten ausprobiert, aber es
klappt einfach nicht. "ASC" soll nur der Verein sortiert werden, der rest ist ok mit "DESC".
Kann mir jemand helfen ?
Benutzeravatar
biototo
Mitglied
Beiträge: 803
Registriert: 10.04.2002 09:51
Wohnort: Düren - Rheinland (zw Köln u. Aachen)
Kontaktdaten:

Beitrag von biototo »

das erste ist einfach, das machte mit modulo. du definierst einen Zähler, der auf 1 gesetzt wird und zählst den anch durchlauf der schleife hoch, dann guckst du on zähjler gerade oder ungerade ist .... danache ntscheidest du welche farbe .... fertig.

Code: Alles auswählen

$blah = 1;

while(

if ( ($blah % 2) == 0 )
{
$farbe = "#.........";
}
else
{
$farbe = "#.......";
};

echo "<tr style=\"background-color=".$farbe."\">";
...
$blah++;
...
);

so in etwa .... ich hoffe es ist rübergekommen, was ich meine ... ansonsten melden.


das 2. .... versteh ich nicht ganz ... was genau möchtest du denn wie sortieren ??
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Prüf doch den Wert vorher...

Code: Alles auswählen

$sortdir = ($sort=='team') ? 'ASC' : 'DESC';
... ORDER BY $sort $sortdir
Condor hat geschrieben:nicht Aufsteigend(DESC),
sondern Absteigend (ASC)
ASC = ascending = Aufsteigend
DESC = descending = Absteigend
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hallo,
das von dir bioto habe ich noch nicht ganz verstanden, von der praxis her nicht. Ich werde aber mal rumprobieren, da lerne ich ja auch was dazu und vielleicht funktioniert es ja auch. Den Vorschlag von Pyramide werde ich mal ausprobieren. Wenn etwas nicht geht, werde ich es hier im Forum nochmal posten. Vielen Dank für eure Hilfe.
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hallo,
ich bins nochmal. Das mit dem sortieren klappt jetzt wunderbar, danke Pyramide :lol: . Aber das mit den Tabellenfarben will einfach nicht. Ich habs theoretisch verstanden, aber bei der Praxis mangelt es mir an Verstand. Ich verstehe diese while schleife nicht ganz und weiss auch nicht wo ich das einbauen soll, da meine tabelle bereits in einer while-schleife ist. Könntet ihr mir nicht etwas konkreter sagen wo ich das einbauen soll und vor allem was ? Ich hab da echt probleme mit. Wenns nicht zu unverschämt ist, könntest du mir ja vielleicht den fertigen Code oder Codesnipsel hier posten :D ?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Im Prinzip musst du nur deinen Code mit dem von bio kombinieren:

Code: Alles auswählen

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
      $platz++; 
      $color = ($platz%2 == 0) ? 'blue' : 'red';
      echo '<TR style="background-color:' . $bgcolor . '">'; 
      echo "<TD>"; 
      echo $platz; 
      echo "</TD>"; 
      echo "<TD>"; 
      echo $row['team']; 
      echo "</TD>"; 
      echo "<TD>"; 
      echo $row['punkte']; 
      echo "</TD>"; 
      echo "<TD>"; 
      echo $row['gtore']; 
      echo "</TD>"; 
      echo "<TD>"; 
      echo $row['btore']; 
      echo "</TD>"; 
      echo "<TD>"; 
      echo $row['tordiff']; 
      echo "</TD>"; 
      echo "</TR>"; 
   } 
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hallo,
Super !!! Vielen Dank !!! Jetzt funktioniert es, so wie ich es mir vorgestellt habe. Ich hatte das auch so ähnlich, aber es wollte einfach nicht funktionieren. Wahrscheinlich lag es mal wieder an einer Kleinigkeit, vielleicht habe ich ein ' vergessen oder so. Ist jetzt egal. Ich danke euch beiden herzlichst. Ein Fehler war aber in deinem posting: Die Variable $bgcolor muss $color heissen. Solche Fehler meinte ich, so was hatte ich bestimmt auch und funktioniert das natürlich nicht. Meistens liegt es ja an solchen Kleinen Dingen und man sucht und sucht und findet nichts. Bis zum nächsten mal.
Antworten

Zurück zu „Coding & Technik“