grau weiss grau tabelle?

asdfg

Mitglied
Wie kriege ich das hien, wenn ich eine SQL Abfrage ausführe, und die Daten in eine Tabelle schreibe, dass die 1 Zeile grau wird und die 2 Zeile weiss und die 3 Zeile grau etc...?
 
Beispielsweise so:

PHP:
<?php

$row_classes = array(
	'roweven',
	'rowodd',
);

$result = mysql_query('…');

$row_num = 0;

while ($row = mysql_fetch_array($result)) {
	$row_class = $row_classes[$row_num % 2];

	echo '<tr class="'.$row_class.'">';
	?
	echo '</tr>';

	$row_num++;
}

?>

Dann noch entsprechend die CSS-Klassen roweven und rowodd definieren und fertig.
 
Ich habe es noch nicht hiengekriegt. Woran liegt das?

PHP:
<?PHP

include './lab/config.php';

$sort = addslashes($_GET['sort']);
$cat = addslashes($_GET['cat']);
$go = addslashes($_GET['go']);

$row_classes = array(
    'roweven',
    'rowodd',
);

    $query = '
        SELECT
                *
          FROM
                `fi`
               WHERE `cat`="'.$cat.'"
          ORDER BY
                '.$sort.' '.$go.'
              
        ';
    $result = mysql_query($query);
    $tmp = null;
    $row_num = 0;
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
        if( $tmp != $row[$sort] ) {
            if( !is_null($tmp) ) {
               
            }
             
             $row_class = $row_classes[$row_num % 2];
             
             echo "<table border='0'  width='688' width='95%' cellspacing='0' cellpadding='0'><tr bgcolor='D9D9D9'>";
           echo "<td colspan='10'>$row[$sort]</td></tr><br>";
            
 
        
            $tmp = $row[$sort];
            
 
            
        }
        echo "

<tr class='.$row_class.'><td width='5'></td>
<td><a href='".$row['http4']."' target='_self'><img src='../03/icons/".$row['icon']."' align='absbottom' alt='' border='0' /></a>&nbsp;&nbsp;&nbsp;
<a href='".$row['http4']."' target='_self'>".$row['name']."</a></td>
		<td width='6'></td>
		<td>'".$row['res']."'</td>
		<td width='6'></td>
		<td>'".$row['size']."'</td>
		<td width='6'></td>
		<td>'".$row['count']."'</td>
		<td width='6'></td>
		<td>'".$row['date']."'</td>
	</tr>";
    
    $row_num++;
    }
    if( !is_null($tmp) ) {
    }
    
    echo "</table>";

?>

Der entsprechende Css Teil

HTML:
.roweven { background-color: #dcdcdc; }
.rowodd { background-color: #dcdcdc; }
 
Huhu asdfg. Dein Fehler liegt hier:
HTML:
.roweven { background-color: #dcdcdc; }
.rowodd { background-color: #dcdcdc; }
Du musst den beiden CSS-Klassen auch verschiedene Farben zuweisen ;) Z.B. #dcdcdc und #cdcdcd.


Hui, das is auch mal ne coole Lösung :) Ich hab das bisher immer wie folgt gemacht:
PHP:
$nr_class= 0; // Zaehler definieren
  while( $row = mysql_fetch_assoc( $sql ) )
  {
      $nr_class++; // Zaehler bei jeder Ausgabe um 1 erhöhen
      $style = $nr_class % 2 == 0 ? 'style1' : 'style2'; // Prüfen, ob der der Rest von Zaehler/2 == 0 ist. Falls ja, dann wird der Variable der Wert "style1" zugewiesen, ansonsten der Wert "style2"
    echo '<table>';
    echo '<tr><td class=" . $style . ">&nbsp;</td></tr>'; // Einfügen des Wertes der Variable $style ("style1" oder "style2")
    echo '</table>';
  }
 
Zuletzt bearbeitet:
Scheint nicht zu funktionieren:

PHP:
<?PHP

include './lab/config.php';

$sort = addslashes($_GET['sort']); 
$cat = addslashes($_GET['cat']); 
$go = addslashes($_GET['go']);

$row_classes = array(
    'roweven',
    'rowodd',
);

    $query = '
        SELECT
                *
          FROM
                `fi`
               WHERE `cat`="'.$cat.'"
          ORDER BY
                '.$sort.' '.$go.'
              
        ';
    $result = mysql_query($query);
    $tmp = null;
    $row_num = 0;
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
        if( $tmp != $row[$sort] ) {
            if( !is_null($tmp) ) {
               
            }
             $row_num++;
             $row_class = $row_num % 2 == 0 ? 'roweven' : 'rowodd';
             
             echo "<table border='0'  width='688' width='95%' cellspacing='0' cellpadding='0'><tr bgcolor='D9D9D9'>";
           echo "<td colspan='10'>$row[$sort]</td></tr><br>";
            
 
        
            $tmp = $row[$sort];
            
 
            
        }
        echo "

<tr class=".$row_class."><td width='5'></td>
<td><a href='".$row['http4']."' target='_self'><img src='../03/icons/".$row['icon']."' align='absbottom' alt='' border='0' /></a>&nbsp;&nbsp;&nbsp;
<a href='".$row['http4']."' target='_self'>".$row['name']."</a></td>
		<td width='6'></td>
		<td>'".$row['res']."'</td>
		<td width='6'></td>
		<td>'".$row['size']."'</td>
		<td width='6'></td>
		<td>'".$row['count']."'</td>
		<td width='6'></td>
		<td>'".$row['date']."'</td>
	</tr>";
    
 
    }
    if( !is_null($tmp) ) {
    }
    
    echo "</table>";

?>
 
Zuletzt bearbeitet:
Ohne entsprechende Tabelle/Daten ist es schwer nachzuvollziehen, was genau nicht funktioniert und woran dies liegen könnte. Ein paar mehr Informationen über den vermeintlichen Fehler wäre also hilfreich.
 
PHP:
echo "

<tr class='.$row_class.'><td width='5'></td>
…
Hast du dir schon mal den ausgegebenen HTML-Quellcode angesehen? Anscheinend nicht, denn sonst wäre dir sofort aufgefallen, dass hier <tr class='.roweven.'> ausgegeben wird anstatt <tr class='roweven'>.
 
Matthias Reitinger hat gesagt.:
PHP:
echo "

<tr class='.$row_class.'><td width='5'></td>
…
Hast du dir schon mal den ausgegebenen HTML-Quellcode angesehen? Anscheinend nicht, denn sonst wäre dir sofort aufgefallen, dass hier <tr class='.roweven.'> ausgegeben wird anstatt <tr class='roweven'>.
Beheben tut man das natürlich, indem man ".$row_class." schreibt ...
 
Sehr aufmerksam, aber selber zu dieser Zeit leider nicht mehr so aktiv.
Nun hat mich hier jemand falsch verstanden, denn ich möchte:

asdfg hat gesagt.:
Wie kriege ich das hien, wenn ich eine SQL Abfrage ausführe, und die Daten in eine Tabelle schreibe, dass die 1 Zeile grau wird und die 2 Zeile weiss und die 3 Zeile grau etc...?

Nun ist hier aber ein ganzer Abschnitt grau/weiss/grau.
 
Zuletzt bearbeitet:
Zurück