sun's longitude:241 41 23.87 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/delete.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
 ★ 글 지우기 항목입니다. 한번 더 생각하시고 결정하십시오.!!!
제목 4358 번 글의 답장글 : Re: php 질문좀.....
 이름  산이 [홈]http://linuxchannel.net/

[김성민]님이 남기신 글:

>안녕하세요.
>
>며칠을 헤메다 질문 드립니다....
>
>회원테이블에 last_visit 이라는 필드(datetime 형식)가 있고 그 안에는
>'2003-11-01 11:47' 과 같이 날짜가 입력 됩니다.
>위 날짜는 최종 갱신만 되는 것으로 Date('Y-m-d H:i:s') 로 입력했습니다.
>오늘 방문했다면 '2003-11-05 11:47' 과 같이 마지막 시간만 저장하는 겁니다.
>
>검색조건을 주려는데 날짜계산을 어떻게 해야 할지 몰라서요.
>
>CREATE TABLE member (
> id int(11) NOT NULL auto_increment,
> insert_date datetime default NULL,
> name varchar(30) default NULL,
> last_date datetime default NULL,
> PRIMARY KEY (id)
>) TYPE=MyISAM;
>
># A 사용자의 최종 방문일 '2003-11-01 11:47' #
>오늘이 2002년 11월 05 일이고 최종 방문일 이후 3일간 (2003-11-04 까지)
>방문기록이 없는 자료를 찾을려고 합니다.
>시간은 필요없고 날짜로만 찾을려고 하는데 특정일 이후 몇일? 이라는
>조건을 어떻게 주어야 하는지를 모르겠습니다.
>php 예문으로 설명을 주시면 대단히 감사하겠습니다.
>

기준이 최종방문일인데 이 시간 이후는 A 사용자의
방문 기록이 없는것이 정상아닌가요?

datetime 자료형은 내부적으로 정수 연산합니다.
따라서

A 사용자의 최종 방문일은 다음과 같은 쿼리로 구할 수 있습니다.

SELECT MAX(insert_date) FROM member WHERE id = 'foo';

그리고 2003-11-04 00:00:00 이후의 방문 기록이 있는 유저는

SELECT id FROM member WHERE insert_date > '2003-11-04 00:00:00';

이렇게 하면 됩니다.

이후의 방문 기록이 없는 유저는 한번이라고 방문한 모든 유저를 구하고
위의 유저를 빼주면 되겠죠.

PHP 배열을 이용하면 됩니다.

$방문하지 않는 유저 = array_diff($모든유저,$방문유저);

참고로 모든 유저는

SELECT id FROM member BGROP BY id;

이렇게 하면 됩니다.
물론 위의 SQL 의 결과를 하나씩 fetch 해서 배열로 만들어야 합니다.



>
>===================================================================
>질문 - 2
>===================================================================
>
><table width="600" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
><?
>$result=mysql_query("select usercase, name from member where status='1' and sex='$sex'");
>while($row = mysql_fetch_array($result)){
> $usercase = explode("-",$row[usercase]);
> $output[$usercase[1]] = "<b>$usercase[1]</b><div style='line-height:200%' align='center'>$row[name]</div>";
>}
>
>$total=120;
>
>for($i=1;$i<=$total;$i++){
>
>if($i%10==1){
> echo("<tr valign='top'>");
>}
> echo("<td ");
> if($output[$i]) echo "bgcolor='$bgcolor'"; else echo "bgcolor='#FFFFFF'"; echo ("height='60' width='60'>");
> if(!$output[$i]) echo "<b>{$i}</b>";
> else echo "$output[$i]";
> echo("</td>");
>if($i%10==0){
> echo("</tr>");
>}
> }
>?>
></table>
>
>가로로 10셀씩 120칸을 출력하면서 해당 사물함을 쓰고 있는 현황표를 만들고 있습니다.
>위와 같이 출력하는데 까지는 했는데, 사물함중에 열쇠가 없는 사물함이 있거든요?
>열쇠 없는 사물함에는 사물함 번호 $i 를 빨간색으로 표시할려고 합니다.
>
>근데 문제는 for 문을 돌면서 $i 와 열쇠없는 번호를 비교하는거 까지는 알겠습니다..
>
>if($i=="10" || $i=="12" || $i=="14") echo "<font color='red'>$i</font>";
>
>이렇게요...
>
>근데 열쇠없는 사물함을 별도의 변수로 지정해놓고 쓰려고 하는데 도무지 모르겠습니다.
>
>mysql db 에 위와 같이 10, 12, 14 라는 번호들을 입력해 놓고 그것을 불러와서 $i 와 비교
>하려고 하면 어떻게 해야할지...
>번호들은 1개가 될수도 있고 여러개가 될수도 있구요..
>
>무슨 말인지는 아실것 같은데.... 위와 같이 || 또는이라는 조건을 안하고 변수로 지정된
>번호와 일치하는 것을 빨간색 글씨로 표시하고자 하는 겁니다...
>
>좀 갈쳐 주세요...답답해 죽겠습니다... ㅎㅎ

간단하게 배열변수를 사용하면 되겠네요.
체크는 in_array() 함수 사용.

만약 열쇠가 없는 사물함에 대한 배열변수는

$열쇠없음 = array(10,12,14);

if(in_array($i,$열쇠없음))
{
echo "$i 는 열쇠가 없습니다.";
}
else
{
echo "$i 는 열쇠가 있습니다.";
}


그외 array_search(), array_walk() 함수를 사용해도 되지만
위의 방법이 제일 간단하고 좋네요.
2003년 11월 07일 00:54:59 금(새벽)  from 61.254.75.40
0
암호: 공용 보안 SSL 서버가 준비되기 전까지는 off 합니다

apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds