다른 방법으로 해결해야겠네요.
전의 방법대로 하면, 중복되는 두번째 값부터 빨간 색으로 표시할 수 있습니다.
중복되는 모든 값(예를 들어 중복되는 값이 세개가 있으면 첫번째값부터) 빨간색으로 표시하려면, 예전처럼 이전의 값만 비교해서는 안되고, 현재 레코드 이후의 값도 비교해야 합니다. 즉, 현재 레코드 이전 또는 이후의 값이 현재의 값과 일치하면 빨간 색으로 표시하도록 해야죠. 이건 좀 복잡해집니다.
좀 복잡하지만 아래와 같이 해결하면 되겠네요.
mysql_data_seek 함수가 핵심입니다. 지정한 레코드 번호의 레코드로 바로 이동하는 함수인데, 현재 레코드 이전과 이후 레코드로 이동하려면 어쩔 수 없네요. 조금 복잡하지만 주석 달아 놓았으니 참조하세요...
참고로 함수 앞에 @를 붙인 것은 오류 메시지를 표시하지 말라는 뜻입니다.
<?
// DB 연결
mysql_connect("localhost","phpbbs","phpbbs");
mysql_select_db("itmembers");
// 쿼리문
$query="select * from qna order by num desc";
$result=mysql_query($query);
$i=0; // 레코드 번호
while(@mysql_data_seek($result,$i)) { // 레코드 번호 0번째부터 찾기 - 반복
$prev = $next = ''; // 현재 레코드 이전 및 이후 값 초기화
$row=mysql_fetch_array($result); // 현재 레코드 세트 구하기
if(@mysql_data_seek($result,$i-1)) { // 이전 레코드 세트 구하기
$prev = mysql_fetch_array($result);
}
if(@mysql_data_seek($result,$i+1)) { // 이후 레코드 세트 구하기
$next = mysql_fetch_array($result);
}
if($row[a]==$prev[a] || $row[a]==$next[a]){ // 현재 값이 이전 또는 이후 값과 일치하면...
$row[a]="<font color='red'>$row[a]</font>";
}else{
$row[a]="$row[a]";
}
댓글 3
전의 방법대로 하면, 중복되는 두번째 값부터 빨간 색으로 표시할 수 있습니다.
중복되는 모든 값(예를 들어 중복되는 값이 세개가 있으면 첫번째값부터) 빨간색으로 표시하려면, 예전처럼 이전의 값만 비교해서는 안되고, 현재 레코드 이후의 값도 비교해야 합니다. 즉, 현재 레코드 이전 또는 이후의 값이 현재의 값과 일치하면 빨간 색으로 표시하도록 해야죠. 이건 좀 복잡해집니다.
좀 복잡하지만 아래와 같이 해결하면 되겠네요.
mysql_data_seek 함수가 핵심입니다. 지정한 레코드 번호의 레코드로 바로 이동하는 함수인데, 현재 레코드 이전과 이후 레코드로 이동하려면 어쩔 수 없네요. 조금 복잡하지만 주석 달아 놓았으니 참조하세요...
참고로 함수 앞에 @를 붙인 것은 오류 메시지를 표시하지 말라는 뜻입니다.
<?
// DB 연결
mysql_connect("localhost","phpbbs","phpbbs");
mysql_select_db("itmembers");
// 쿼리문
$query="select * from qna order by num desc";
$result=mysql_query($query);
$i=0; // 레코드 번호
while(@mysql_data_seek($result,$i)) { // 레코드 번호 0번째부터 찾기 - 반복
$prev = $next = ''; // 현재 레코드 이전 및 이후 값 초기화
$row=mysql_fetch_array($result); // 현재 레코드 세트 구하기
if(@mysql_data_seek($result,$i-1)) { // 이전 레코드 세트 구하기
$prev = mysql_fetch_array($result);
}
if(@mysql_data_seek($result,$i+1)) { // 이후 레코드 세트 구하기
$next = mysql_fetch_array($result);
}
if($row[a]==$prev[a] || $row[a]==$next[a]){ // 현재 값이 이전 또는 이후 값과 일치하면...
$row[a]="<font color='red'>$row[a]</font>";
}else{
$row[a]="$row[a]";
}
$i++; // 레코드 번호 증가
echo "<tr bgcolor='#FFFFFF'>
<td height='30' width='100'><p align='center'>$row[a]</p></td>
<td height='30' width='100'><p align='center'>$row[b]</p></td>
<td height='30' width='100'><p align='center'>$row[c]</p></td>
<td height='30' width='100'><p align='center'>$row[e]</p></td>
<td height='30' width='100'><p align='center'>$row[f]</p></td>
</tr>
";
}
?>