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

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

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

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
1759 번 글의 답장글: Re: php 질문좀.....
글쓴이: 산이 [홈페이지] 글쓴날: 2003년 11월 07일 00:54:59 금(새벽) 조회: 765

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

>안녕하세요.
>
>며칠을 헤메다 질문 드립니다....
>
>회원테이블에 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() 함수를 사용해도 되지만
위의 방법이 제일 간단하고 좋네요.

 
이전글 : php 질문좀.....
다음글 : quota 좀 여쭈어보려고 합니다  
 from 61.254.75.40
JS(Redhands)Board 0.4 +@

php 질문좀..... quota 좀 여쭈어보려고 합니다
인쇄용 


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

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