2011-03-31 6 views
1

쿼리 결과가있는 테이블을 채우는 중이고 행의 스타일을 <tr> 또는 으로 바꾸고 싶습니다. (CSS3를 사용하지 않음)테이블의 대체 행에 다른 스타일 표시 (루프 내)

결과 집합의 모든 결과에 대해 내 테이블에 행을 표시하기 위해 while 루프를 사용했습니다.

어떻게하면됩니까? 나는 길을 잃었다.

도와주세요.

내 솔루션 :

if($i % 2) { //this means if there is a remainder 
    echo "<tr class='alt'>"; 
    } else { //if there isn't a remainder we will do the else 
    echo "<tr>"; 
    } 

$i++; 

답변

2

정기적 for i 루프, 당신은 2

의 배수가 잠시 후에 어떤지를 확인 i에합니다 (% 운영자는) modulus을 사용하십시오 루프를 사용하려면 다른 종류의 인크 리 멘타를 사용해야합니다. 루프를 걸기 전에 하나를 선언하고 각 패스를 증가 시키면됩니다.

$i = 0; 
while (condition) { 
    $class = (i%2 == 0) ? 'alt' : ''; 
    echo '<tr class="' + $class + '">'; 
    $i++; 
} 

경고 : PHP를 많이 쓰지 않으므로 위의 코드를 의사 코드로 사용하십시오. 곧바로 올바르게 작동하지 않는 한 작업에 꽤 가깝습니다.

+0

Ack, '$ i & 1'이 더 빠를지라도 작동합니다. – Wrikken

+0

맞습니까. 나중에 누가 코드를 유지할 것인지 (많은 사람들이 비트 단위로 읽지는 않습니다)와 테이블이 얼마나 오래있을 수 있는지/사이트가로드되는 시간에 따라 다릅니다. 가독성/성능 거래라고 생각하지만 OP가 bitwise 대 modulus로 얼마나 편한지에 달려 있습니다. 둘 다 그/그녀에게 그리스어라면, $ i & 1도 마찬가지로 좋을 것입니다. –

+0

사실,'$ i % 2'이 PHP 코어에서'$ i & 1'에 자동으로 최적화되어 있으면 놀라지 않을지라도, 사실입니다. – Wrikken

관련 문제