제목에 [new]를 표시하고 싶습니다. 정보
질문 제목에 [new]를 표시하고 싶습니다.
관련링크
첨부파일
본문
아래는 그누보드3에서 쓰던 코드입니다. 새 글이 작성될 때마다 [new]를 그 제목 옆에 표시하고 싶은데, 안되는군요.
도움을 구합니다.
$sql = " select gr_id, gr_subject from $g4[group_table]
where gr_id not in ('group_a') ";
//order by gr_id "; //제외시킬 그룹 --> not in
$result = sql_query($sql);
while ($row=mysql_fetch_array($result)) {
echo "<table width=100% cellpadding=4 cellspacing=1 bgcolor=#F0F0F0><tr>";
echo "<td valign=top width=120 bgcolor=#F5F5F5> · $row[gr_subject]</td>";
echo "<td width='' bgcolor=#FFFFFF>";
$sql2 = " select bo_table, bo_subject, bo_new from $g4[board_table]
where gr_id = '$row[gr_id]'
and bo_table not in ('board_a')
order by bo_subject ";
$result2 = sql_query($sql2);
$bar = "";
while ($board=mysql_fetch_array($result2)) {
$new_time = date("Y-m-d H:i:s", $g4[server_time] - ($board[bo_new] * 3600));
$sql3 = " select count(*) from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
$row3 = sql_fetch($sql3);
if ($row3[0] > 0)
$new = "[<font color=red><b>new</b></font>]";
else
$new = "";
echo "$bar<a href='$g4_path/gnu/bbs/board.php?bo_table=$board[bo_table]'>$board[bo_subject]$new</a>";
$bar = " | ";
}
echo "</td></tr></table>";
}
위의 링크는 이 코드로 전체 사이트맵을 구현한 것(전부 관리자님 소스)인데, new만 뜨지 않는군요. 도움을 구합니다.
감사합니다.
댓글 전체
우와~~~*
멋진 내용입니다^^;
멋진 내용입니다^^;
그누의 경우는 메모리가 좀 많이 줄겠는데요...^^;
^.^ 네비게이션 메뉴에도 "새 글"에 [new]를 달게 되었습니다. ^.^
메모리를 조금 이라도 줄여보자는 생각에 잔머리를 ㅋㅋ
헉...그렇네요..
// 결과값에서 한행 연관배열(이름으로)로 얻는다.
function sql_fetch_array($result)
{
$row = @mysql_fetch_assoc($result);
return $row;
}
모르고 지나치고 코딩하거나 했을 때 오류나면 헤멜뻔 했군요..
배열첨자를 사용하지 않을경우 일반 사용자들은 좀 불편할수도 있겠네요..
as 네임으로 체크할 필드명을 할당해 주거나, 테이블에 있는 필드명을 알아야 하니....
뭐 꼭 그렇게 불편할것 같지도 않습니다..
알고 쓰면 되지 뭐~~
// 결과값에서 한행 연관배열(이름으로)로 얻는다.
function sql_fetch_array($result)
{
$row = @mysql_fetch_assoc($result);
return $row;
}
모르고 지나치고 코딩하거나 했을 때 오류나면 헤멜뻔 했군요..
배열첨자를 사용하지 않을경우 일반 사용자들은 좀 불편할수도 있겠네요..
as 네임으로 체크할 필드명을 할당해 주거나, 테이블에 있는 필드명을 알아야 하니....
뭐 꼭 그렇게 불편할것 같지도 않습니다..
알고 쓰면 되지 뭐~~
감사합니다. 한 번에 되었습니다. ^.^
$sql3 = " select count(*) as cnt from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
$row3 = sql_fetch($sql3);
if ($row3[cnt] > 0)
지포에서는 쿼리 결과에서 배열 첨자를 사용하지 않습니다.
$row3 = sql_fetch($sql3);
if ($row3[cnt] > 0)
지포에서는 쿼리 결과에서 배열 첨자를 사용하지 않습니다.
감사합니다. 그런데 여전히 안되는군요.
문제는 if ($row3[0] > 0) --> 이것인 것 같습니다.
즉, $new_time보다 크거나 같은 wr_datetime을 카운트한 것을 $row3[0]에 담으려고 한 것에 무슨 오류가 있는 것 같습니다.
문제는 if ($row3[0] > 0) --> 이것인 것 같습니다.
즉, $new_time보다 크거나 같은 wr_datetime을 카운트한 것을 $row3[0]에 담으려고 한 것에 무슨 오류가 있는 것 같습니다.
링크를 안봐서 쿼리문에서 에러 출력이 됐는지 안됐는지 몰랐습니다.
말씀하신 테이블이 보드정보 테이블이 아니라 해당 게시판이군요..
그럼 당연히 wr_datetime 컬럼이 있습니다.
$new_time 변수가 틀렸습니다.
아래처럼 바꾸고
$new_time = date("Y-m-d H:i:s",strtotime("-$board[bo_new] hours"));
그대로 쿼리를 날리면 되겠지요
$sql3 = " select count(*) from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
$g4[server_time] 이 변수는 필요없습니다..위 함수가 서버의 현재 시간을 반환하니까요..
그리고 위 변수는 $g4[time_ymdhis] 이 변수에서 다시 재정의 하므로 $new_time 에서 datetime 형으로 변환할 필요도 없습니다.
말씀하신 테이블이 보드정보 테이블이 아니라 해당 게시판이군요..
그럼 당연히 wr_datetime 컬럼이 있습니다.
$new_time 변수가 틀렸습니다.
아래처럼 바꾸고
$new_time = date("Y-m-d H:i:s",strtotime("-$board[bo_new] hours"));
그대로 쿼리를 날리면 되겠지요
$sql3 = " select count(*) from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
$g4[server_time] 이 변수는 필요없습니다..위 함수가 서버의 현재 시간을 반환하니까요..
그리고 위 변수는 $g4[time_ymdhis] 이 변수에서 다시 재정의 하므로 $new_time 에서 datetime 형으로 변환할 필요도 없습니다.
답변 감사합니다.
그런데, g4_write_table(위의 $g4[write_prefix]$board[bo_table])에는 "wr_datetime"이라는 필드명이 있습니다. 이것은 역시 g3에도 있습니다.
현재까지 나왔던 g4관련 테이블을 엑셀 파일로 정리해 보았습니다. 위에 첨부하겠습니다.
거기에서 g4_write_common_test01을 참조하십시오.
그리고, 위의 방식대로 돌렸는데, 만약 "wr_datetime"이 없다면, 에러가 나야지 그대로 돌아가겠습니까?
그런데, g4_write_table(위의 $g4[write_prefix]$board[bo_table])에는 "wr_datetime"이라는 필드명이 있습니다. 이것은 역시 g3에도 있습니다.
현재까지 나왔던 g4관련 테이블을 엑셀 파일로 정리해 보았습니다. 위에 첨부하겠습니다.
거기에서 g4_write_common_test01을 참조하십시오.
그리고, 위의 방식대로 돌렸는데, 만약 "wr_datetime"이 없다면, 에러가 나야지 그대로 돌아가겠습니까?
g4 보드테이블에는 wr_datetime 컬럼이 없습니다. 새로 생성해 주시고, 관리자모드의 보드생성관련 부분도 작업해 주시구요..
그리고,
$sql3 = " select count(*) from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
위 쿼리문도 아래처럼 수정되어야 합니다.
$sql3 = " select count(*) from $g4[board_table] where 새로만든보드생성시간필드 >= '$new_time' ";
그리고,
$sql3 = " select count(*) from $g4[write_prefix]$board[bo_table] where wr_datetime >= '$new_time' ";
위 쿼리문도 아래처럼 수정되어야 합니다.
$sql3 = " select count(*) from $g4[board_table] where 새로만든보드생성시간필드 >= '$new_time' ";
ㅋㅋㅋ