2012-09-03 4 views
0

가능한 복제를 CSS를 적용
How to set alternate row color for an iterated table in php?
Using CSS :even and :odd pseudo-classes with list itemsPHP는 : 모든 두 번째 행에

이봐, 내가 가지고있는 MySQL의 테이블의 데이터로 채워진 HTML 테이블. 나는 일반적으로 PDO 문에서도를 사용하지만 예를 들어 내가 MySQL을 사용 :

$result = mysql_query("SELECT * FROM {$table}"); 
if (!$result) { 
die("Query to show fields from table failed"); 
} 

$fields_num = mysql_num_fields($result); 

echo "<h1>Table: {$table}</h1>"; 
echo "<tr>"; 

echo "</tr>\n"; 

while($row = mysql_fetch_row($result)) 
{ 
echo "<tr>"; 

foreach($row as $cell) 
    echo "<td>$cell</td>"; 

echo "</tr>\n"; 
} 
mysql_free_result($result); 

참고 : 는 다음 코드를 사용합니다.

코드가 테이블을 올바르게 생성합니다. 문제는 다음과 같은 class = table_higlight를 사용하여 모든 두 번째 행에 CSS를 적용하려고합니다. 내가 어떻게 할 수 있니?

+0

': even'과': 가난한 브라우저 호환성 ... – Florent

답변

1
while($row = mysql_fetch_row($result)) 
{ 
echo "<tr".(++$ctr%2 == 0 ? ' class="table_highlight"' : '').">"; 

foreach($row as $cell) 
    echo "<td>$cell</td>"; 

echo "</tr>\n"; 
} 
+0

왜이 odd'? foreach ($ row as $ cell) 행은 가져온 행의 각 열을 나열해야합니다. – rationalboss

+0

아니요, foreach는 쓸모가 없습니다. 그는 행에 대한 모든 셀을 반복합니다. 테이블의 열 수를 모르는 경우 모두를 반복해야합니다. – Brendan

+0

죄송합니다. 혼란 스럽습니다. – Florent

3

사용 :

$i = 0; 
while($row = mysql_fetch_row($result)) { 
    if ($i % 2 == 0) 
    echo '<tr class="even">'; 
    else 
    echo '<tr class="odd">'; 

    foreach($row as $cell) 
    echo "<td>$cell</td>"; 

    echo "</tr>\n"; 
    $i++ 
} 
+0

왜 그냥 CSS 의사 선택기를 사용하지 않는가? tr : 홀수 또는 tr : 짝수? – user466764

관련 문제