로그인한 날짜가 정해진 숫자 이상일 경우는 어떻게 뽑는지요

깜찍한악마님의 '로그인하지 않은 회원뽑기' 팁을 사용 중인데요
 
 
로그인하지 않은 회원을 뽑을 때 3일을 지정했더니 로그인하지 않은 날이 4일이상 되는 회원은 뽑아내지 않더군요. 
 
로그인하지 않은 날이 3일 이상이라고 하면 로그인하지 않은 날이 4일이 되어도 뽑아 낼 것 같은데 소스를 몰라서 그러니 가르쳐 주셨으면 고맙겠습니다. 
 
 
사용소스
<?
include_once("./_common.php");
include_once("./_head.php");
include_once("$g4[path]/head.sub.php");
$g4[title] = "3일 이상 결석한 사람";
$login_time = "3"; //지난 몇일 동안?
$today_login_time = date("Y-m-d H:i:s", $g4['server_time'] - ($login_time * 86400));
//페이지
$nologin_sql = " select count(*) as cnt from $g4[member_table] where mb_today_login < '$today_login_time' ";
$nologin_row = sql_fetch($nologin_sql);
        .
        .
        .
        .
 
|

댓글 21개

링크가보면 정상작동 되는게 아닌가요?...

10/2~10/3일 사이의 목록이 보입니다만....
10월2일 출석했던 5명은 나타나지 않고 있습니다.
지금 나타난 사람보다 먼저 로그인한 사람이요
혹 레벨이 다르지는 않은가요?

아니면 레벨적용시 문제가?....

소스를 댓글에 올려 주세요....
10월2일 15시 이전에 로그인한 사람은 목록에서 빠져 있습니다.
그리고 레벨은 똑같구요
소스입니다
<?
include_once("./_common.php");
include_once("./_head.php");
include_once("$g4[path]/head.sub.php");
$g4[title] = "3일 이상 결석한 사람";

$login_time = "3"; //지난 몇일 동안?
$today_login_time = date("Y-m-d H:i:s", $g4['server_time'] - ($login_time * 86400));

//페이지
$nologin_sql = " select count(*) as cnt from $g4[member_table] where mb_today_login < '$today_login_time' ";
$nologin_row = sql_fetch($nologin_sql);

$total_count = $nologin_row[cnt];

//$nologin_rows = $config[cf_page_rows]; //환경설정에 있는 페이지
$nologin_rows = 15; //수동으로 페이지
$total_page = ceil($total_count / $nologin_rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $nologin_rows; // 시작 열을 구함

//처음 출력
$nologin_sql2 = " select * from $g4[member_table] where mb_today_login < '$today_login_time' and mb_level = '3' and mb_level <> '' order by mb_today_login desc limit $from_record, $nologin_rows ";
$nologin_result2 = sql_query($nologin_sql2);

$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");
?>
<style type="text/css">
<!--
.style1 {
color: #0000FF;
font-weight: bold;
}
.style2 {color: #FF00FF}
.style3 {
color: #339900;
font-weight: bold;
}
.style4 {
font-size: 16px;
font-weight: bold;
color: #3300CC;
}
body {
margin-left: 17px;
margin-top: 17px;
}
.style6 {color: #E6E6FF; font-weight: bold; }
-->
</style>


<table width="630" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFECEC" style='border:1px solid #EEEEEE;' valign="top">
<tr height="30">
<td height="26" colspan="4" align="center"><span class="style4">3일 이상 결석한 사람 </span></td>
</tr>
<tr bordercolor="#FFCC99" bgcolor="#F4FFFF" height="30">
<td height="20" colspan="2" align="center">이름(아이디)</td>
<td width="37%" align="center">마지막로그인</td>
<td width="29%" align="center">포인트</td>
</tr>
<?
for ($i=0; $nologin = sql_fetch_array($nologin_result2); $i++) {

// 포인트 제거
//insert_point($nologin[mb_id], -$nologin[mb_point], "비로그인", "@No-login", $nologin[mb_id], $g4[time_ymd]);
?>
<tr bordercolor="#FFE1FF">
<td height="1" colspan="4" bgcolor="#EEEEEE"></td>
</tr>
<tr bordercolor="#FFE1FF" bgcolor="#FFF2E6" height="30">
<td width="4%" align="center" bordercolor="#FFE1FF"><div align="center"><span class="style6">*
</span></div></td>
<td width="30%" align="center"><div align="justify"><span class="style1">
<?=$nologin[mb_name]?>
(
<?=$nologin[mb_id]?>
)</span></div></td>
<td width="37%" align="center"><span class="style2">
<?=$nologin[mb_today_login]?>
</span></td>
<td width="29%" align="center"><span class="style3">
<?=$nologin[mb_point]?>
</span></td>
</tr>
<? } ?>
</table>
<p><?
include_once("$g4[path]/tail.sub.php");
?>
음~~! 뽑는 소스의 문제가 아닌 출력 부분의 페이징 문제인듯 싶습니다.

즉, 뽑기는 다 뽑아 왔는데 보이지를 않는 것으로 보이네요...

페이징 처리 부분이 빠진듯 합니다.

팁게시판에는
<p>
<?=$pagelist?>이 있는데 위에는 안보입니다...
현재 목록에 없는 5명은 어제는 있었던 것으로 보아 하루가 지나면 로그인한 날짜가 3일이상이 되면 목록에서 사라지는군요
<p>
<?=$pagelist?>를 어디에 넣어야 하지요?
맨 아래부분에요..

<?
include_once("$g4[path]/tail.sub.php");
?>

바로 위에
그리고

$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");

를 찾아서

$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?page=");

로 바꾸어 주시면 주소줄이 좀 이뻐집니다.
천상재회님 해결됐습니다.
감사합니다
페이지가 2쪽밖에 없는데 6쪽까지 나타나는데 이것은...
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");

찾아서 주석처리 하시고요

넣으신 <p> <?=$pagelist?>

바로 위에다가
<?
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?page=");
?>

넣으시고 <p> <?=$pagelist?> 는

<p align=center> <?=$pagelist?> 로 바꾸시면 종료될듯 합니다.
페이지가 가운데로 갔는데 페이지수는 그대로이고 2페이지로 넘어가지 않는군요?
페이지 이동은 정상적으로 되는것 아닌가요?...
익스플로러를 나갔다가 다시 들어오니까 정상이군요
음~~~!

페이지수가 많은것은 아마도 날짜별로 중복되는 아이디의 수가 포함되어 그런듯 합니다...ㅠ.ㅠ

카운터 숫자를 세는 쿼리문

//페이지
$nologin_sql = " select count(*) as cnt from $g4[member_table] where mb_today_login < '$today_login_time' ";
$nologin_row = sql_fetch($nologin_sql);

$total_count = $nologin_row[cnt];

부분을 손봐야 하는뎅...ㅠ.ㅠ
//페이지
$nologin_sql = " select count(*) as cnt from $g4[member_table] where mb_today_login < '$today_login_time' and mb_level = '3' ";
$nologin_row = sql_fetch($nologin_sql);

$total_count = $nologin_row[cnt];


//처음 출력
$nologin_sql2 = " select * from $g4[member_table] where mb_today_login < '$today_login_time' and mb_level = '3' order by mb_today_login desc limit $from_record, $nologin_rows ";
$nologin_result2 = sql_query($nologin_sql2);

두 부분 쿼리문을 바꾸어 보시겠습니까?
잘되네요.....

위의 카운터 쿼리문에 레벨 설정을 안해서 전체에서 카운터를 해서 발생한 문제 입니다.
잘 해결됐습니다. 정말 감사합니다
휴일인데도 도움을 주셔서 감사합니다. 남은 연휴 뜻있게 보내시길...
잘 되신다니 감사합니다....

행복한 날 되십시오....

페이징 처리 부분은 제가 알려드린대로 수정하시면 좀 깔끔(?)해 집니다.....^^

우측 스크롤메뉴의 링크도 길게 나옵니다...

그냥 noattendance.php 로 하셔도 좋을 듯 합니다.
결석생 찾기
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
19년 전 조회 1,567
19년 전 조회 1,601
19년 전 조회 1,512
19년 전 조회 1,592
19년 전 조회 1,550
19년 전 조회 1,501
19년 전 조회 1,634
19년 전 조회 1,625
19년 전 조회 1,526
19년 전 조회 1,505
19년 전 조회 1,595
19년 전 조회 1,512
19년 전 조회 1,455
19년 전 조회 1,590
19년 전 조회 1,660
19년 전 조회 1,660
19년 전 조회 1,749
19년 전 조회 1,914
19년 전 조회 1,592
19년 전 조회 1,602
🐛 버그신고