Seite 1 von 1

Tabelle farbig darstellen, aber wie ?

Verfasst: 17.12.2002 01:57
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 ?

Verfasst: 17.12.2002 10:35
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 ??

Verfasst: 17.12.2002 18:48
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

Verfasst: 18.12.2002 01:26
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.

Verfasst: 18.12.2002 02:36
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 ?

Verfasst: 18.12.2002 18:24
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>"; 
   } 

Verfasst: 19.12.2002 01:28
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.