Tabellen/Zeilen abwechselnd farbig darstellen
rony
- php
0 Dieter Raber0 rony0 Viennamade0 rony
0 Dieter Raber0 rony
0 Viennamade0 FrankieB
Hallo zusammen
bei einer Schleife möchte ich die Tabellenzeilen abwechselnd farbig darstellen, und habe das mal hier:
<?php
<table width="450" height="18">
<?php do
{ ?>
<?php if ($row_rs1['titel'] != "" ) { ?>
<tr>
<td width="292" valign="top" class="titel"> <?php echo $row_rs1['titel']; ?>
<div align="center"></div>
</td>
<td width="143" valign="top" class="titel"><?php echo $row_rs1['erscheinungsjahr']; ?> </td>
</tr>
<?php } ?>
<?php
function bgcolor($row = 1) {
static $i;
static $col = array('#CCCCCC',
'#DDDDDD'
); // etc.
$bg = $col[(int)($i + .00000001)];
$i += 1 / $row;
if ($i >= count($col)) $i = 0;
return $bg;
} while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
</table>
?>
Aber es funktioniert nicht. Kann mir jemand zeigen wo ich den Fehler habe?
Merci
Hallo,
<?php
<table width="450" height="18">
parse error, nimm das erste <?php weg
<?php do
{ ?>
php zu - php auf, wozu das?
<?php if ($row_rs1['titel'] != "" ) { ?>
<?php } ?>
dto.
<?php
function bgcolor($row = 1) {
warum deklarierst du hier mittendrin eine Funktion - rufst diese aber nie auf?
return $bg;
} while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
hier schliesst du php
</table>
?>
hier schliesst du es wieder
Du waerest gut beraten, erstmal deinen Code zu sortieren, ansonsten ist ein Fehlersuche muessig.
Dieter
Hallo Dieter, keine Funktioin wird hier für nichts aufgerufen.
Vielleicht ist das hier besser übersichtlicher:
-------------------------------------------------
<?php do { ?>
<table width="450" border="0" cellspacing="0" cellpadding="0">
<?php if ($row_rs1['titel'] != "" ) { // Hide if field is empty ?>
<tr>
<td width="293"><?php echo $row_rs1['titel']; ?></td>
<td width="157"><?php echo $row_rs1['erscheinungsjahr']; ?></td>
</tr>
<?php } // Hide if field is empty ?>
</table>
<?php } while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
-------------------------------------------------
Danke für deine Hilfe, MfG rony
Hallo!
Hallo Dieter, keine Funktioin wird hier für nichts aufgerufen.
Nette Tautologie.
<?php do { ?>
<table width="450" border="0" cellspacing="0" cellpadding="0">
Du willst also pro Datensatz eine Tabelle auszeichnen?
<?php if ($row_rs1['titel'] != "" ) { // Hide if field is empty ?>
<tr>
<td width="293"><?php echo $row_rs1['titel']; ?></td>
<td width="157"><?php echo $row_rs1['erscheinungsjahr']; ?></td>
</tr>
<?php } // Hide if field is empty ?>
</table>
<?php } while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
Da gibts nirgendwo etwas, das sich um die Zeilenfarben kümmern würde.
Beste Grüße
Viennamade
Hallo Viennamade
Darum Frage ich auch wie ich das anstelle!
Grüsse rony
Hallo!
Darum Frage ich auch wie ich das anstelle!
G stimmt :-)
Du hast sicher schon das Posting von FrankieB oberhalb, innerhalb dieses Threads gelesen ...
Beste Grüße
Viennamade
HI Viennamade
Ja, habe ich , irgendwie bin ich nicht so Fux wie Ihr in denen Sachen. Aber auch schön kompliziert die ganze Sache ist.
Liebe Grüsse, rony
Hi rony,
Ja, habe ich , irgendwie bin ich nicht so Fux wie Ihr in denen Sachen. Aber auch schön kompliziert die ganze Sache ist.
Nein, das Ganze ist gar nicht so kompliziert wir Du vielleicht glauben magst.
<?php
echo "<pre>";
print_r($rs1);
echo "</pre>";
?>
<?php
echo "<pre>";
print_r($row_rs1);
echo "</pre>";
?>
<?php
while ($row_rs1=mysql_fetch_assoc($rs1)){
print_r($row_rs1);
}
?>
Nachdem Du deine (Bildschirm)-Ausgabe hier gepostet hast (Copy&Paste des relevanten Teils deiner Ausgabe), sehen wir weiter.
Ach ja, das Ganze macht natürlich nur Sinn, wenn deine Query korrekt ist und Datensätze gefunden werden.
Grüsse
Frankie
PS:
Hallo Rony,
Viennamade war mit Modulo auf der richtigen Faehrte, alles was du jezt noch tun musst, ist eine CSS-Klasse mit dem namen ".distinct" zu basten, die die alternative Farbe enthaelt.
<?php
$i = 0;
do {
$class = $i % 2 ? '' : ' class="distinct"';
print '<table width="450" border="0" cellspacing="0" cellpadding="0">'
if ($row_rs1['titel'] != "" ) {
print '<tr' . $class . ">\n"
. '<td width="293">' . $row_rs1['titel'] . "</td>\n"
. '<td width="157">' . $row_rs1['erscheinungsjahr'] . "</td>\n"
. "</tr>\n"
}
print "</table>\n";
$i++;
} while ($row_rs1 = mysql_fetch_assoc($rs1));
?>
Dieter
Hallo Dieter, habe ich gemacht so wie du gepostet hast, aber es funktioniert nid.
Die Fehlermeldung lautet:
Parse error: parse error, unexpected T_IF in C:\xampp\htdocs\verzeichnis\index.php on line 65
Trotzdem; lieben Dank für deine Mühe
Grüsse rony
Hallo,
Parse error: parse error, unexpected T_IF in C:\xampp\htdocs\verzeichnis\index.php on line 65
Steht doch da, unerwartetes if, weil hinter dem print '<table...> das Semikolon fehlt, Copy & Paste ist nicht immer das Gelbe vom Ei
Dieter
Hallo!
Anbieten würde sich doch dafür eine Modula-Funktion: Ist die Zeilennummer (bzw. Zähler) gerade, dann vanilledotterblumengelb, ist sie ungerade dann südspanisch-eierfruchtviolett. Suche vergebens Modula-Funktion für PHP und finde keine. Das kann nicht sein?!
Beste Grüße
Viennamade
Hallo Vienna,
Anbieten würde sich doch dafür eine Modula-Funktion: Ist die Zeilennummer (bzw. Zähler) gerade, dann vanilledotterblumengelb, ist sie ungerade dann südspanisch-eierfruchtviolett.
das sehe ich ebenso.
Suche vergebens Modula-Funktion für PHP und finde keine. Das kann nicht sein?!
ein kleiner Auszug aus der FAQ der NG de.comp.lang.php.*
http://www.dclp-faq.de/q/q-code-tabellenfarbe.html
<cite>
Besonders, wenn man die Zeilen sowieso mitzählt, kann man den gleichen Effekt leicht mittels des Modulo-Operators (%) und CSS erreichen.
printf("<tr class='row%s'><td>...</td></tr>\n", $line % 2);
</cite>
Abgesehen von der hoffentlich zufriedenstellenden Antwort auf deine Frage würde ich auch das Problem des OP versuchen mit dieser Variante zu realisieren ,-)
hth
Grüsse
Frankie
Hallo!
Abgesehen von der hoffentlich zufriedenstellenden Antwort auf deine Frage würde ich auch das Problem des OP versuchen mit dieser Variante zu realisieren ,-)
Oh, OK, % ist keine Smily :-)
(Archiv: sondern der Modulus-Operator)
Danke Frankie,
Viennamade