ajax 질문드려요~! 자동 db 업데이트를 하고싶습니다.

ajax 질문드려요~! 자동 db 업데이트를 하고싶습니다.

QA

ajax 질문드려요~! 자동 db 업데이트를 하고싶습니다.

답변 2

본문

안녕하세요

ajax를 이용하여 ?

 

현재시간[a]과, db 필드에 저장된 시간[b]을 비교하여

 

a와b가 같다면 , 특정필드값을 1 혹은 0 으로 자동 변경해주고싶습니다.

 

자동으로 이러한 시스템이 가능한가요 ?

 

ajax로 하는게 아닌가요 ?

 

이 질문에 댓글 쓰기 :

답변 2

1. 자바스크립트로 시간의 변화를 캐치하고

 

2. 캐치한값의 변화에 따라 변수를 전달 및 if문으로 ajax를 실행하고 

 

3. ajax로는 페이지 처리 및 반환만 하시는거에요.

 

아니면 모든 시간을 ajax에 반환해서 ajax에서 db비교후 맞으면 처리하고 안맞으면 돌려주는거로 할수도 있겠지만 db에 엄청난 무리가 가겠죠...

 

ajax는 그냥 단순히 값을 전달받아서 처리하는거에요 ^^

 

php와 db로 시간처리 하는 것처럼 보이지만 다 자바스크립트로 처리하는거랍니다 ^^

 

ps. php는 페이지 리플레시 전에는 변화를 줄 수가 없기 때문에 안되요~

 

끝...

정확히 어떤형식을 원하시는지 잘 이해를 못하고있어요...

서버의 시간에 따라서 db에 값을 넣기만하는건 cron이라는 것만 사용해서도 하실수있고요.(이건 거의 일정시간마다 db백업하거나 일정 시간대. 혹은 한시간마다 접속자수나 글작성수같은거 저장할때 주로 쓰고요)

일정 시간이 되면은 펑션을 작동하게끔해서 스크립트를 짤수도 있고요.
(만약 표 판매시간의 시작시간이나 마감시간이 오후 6시라면 자바스크립트로 오후 6시가 되면 모든 사용자의 페이지를 리플래시 시켜버리거나 원하는 위치의 태그를 ajax로 다른 값이 보이도록 바꾸어준다거나. iframe을 만들어 그곳의 페이지를 변경시킨다거나 등등...)

방법이 엄청 많아서 정확히 어떤걸 원하시는지 모르겠네요 ㅜ.ㅜ

어떤 로직을 돌리실지 알려주시면 방법은 알려드릴께요 ^^

끝...

일정 시간이 되면 작동하는방식은 일단 변수하나에 특정시간을 정해주세요.

그리고나서 사용자가 페이지에 접속하면 접속한 시간을 다른 변수에 저장하시고 특정시간보다 크면 그시간에 보여줄 페이지를 ajax로 바로 보여주시고 그시간보다 작다면 도달시간-현재시간해서 타임아웃이나 딜레이로 그만큼의 시간이 지난후 펑션이 시장되게 해주시면되요.

ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ맞아요..........................이 숫자계산...............................................너무너무 머리가 빠개져요 ㅠㅠㅠ... 아무쪼록 드래곤님!!!!!!!!!!!!!!!!!!!!!!!!!!!!!사랑해요 + _ +.... 아직 적용은 안해봣는데.. 적용해보고 말씀드릴게요. 그런데 이 스크립트 함수는 아무데나 넣어놔도 되는건가요 ? 자동으로 지혼자 적용을 하는거예요 ?>


<script type="text/javascript">
var startTime = '20140728180000'; // 시작시간
 
var now = new Date(); // 현재시간
var year = now.getFullYear();
var month = now.getMonth()+1;
var date = now.getDate();
var hour = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
 
//숫자형을 문자형으로바꿔서 자리수체크및 변환
if((month+"").length < 2){
	month = "0"+month;
}
if((date+"").length < 2){
	date = "0"+date;
}
if((hour+"").length < 2){
	hour = "0"+hour;
}
if((minutes+"").length < 2){
	minutes = "0"+minutes;
}
if((seconds+"").length < 2){
	seconds = "0"+seconds;
}
//최종 현재시간
var loginTime = year+""+month+""+date+""+hour+""+minutes+""+seconds;
if(startTime > loginTime){//시작시간이 현재시간보다 클때
 
	// 시작시간과 현재시간을 빼요.
	var outYear = (startTime.substring(0,4) - year); // 계산안되요...
	var outMonth = (startTime.substring(4,6) - month); // 죄송합니다...
	var outDate = (startTime.substring(6,8) - date); // 머리가아파와요...
	var outHour = (startTime.substring(8,10) - hour) * 3600000;
	var outMinutes = (startTime.substring(10,12) - minutes + 60) * 60000; // 1분 = 60초 = 6만
	var outSeconds = (startTime.substring(12,14) - seconds + 60) * 1000; // 1초당 1천
	
	// 위에서 계산한 연,월,일,시,분,초의 텀을 다 합쳐요.
	var outTime = outYear + outMonth + outDate + outHour + outMinutes + outSeconds;
 
	// 다 합쳐진 시간후에 펑션을 실행시켜요.
	setTimeout("실행할펑션();", outTime);
}else{
		실행할펑션();
}
</script> 

 

숫자는 싫어요...........

하다보니깐 연 월까진 필요 없는것도 같아요.... (계산이 어려워서 하는말은 아니에요...)

몇일뒤, 몇시간뒤 이게 제일 많이 쓸것같네요 ^^

실행할 펑션에 그렇게 쓰고싶어하시는 ajax사용하시면 되요~

실제 적용해보니깐 안맞네요....

시작시간에서 현재시간 빼는게 중요해요......

제가 지금 넣은건 18시00분00초에 시작하게하려고 +60을 넣은건데...

이게또 17시 30분에 접속한사람이면 18-17=1로 1시간.... 0-30+60=30으로 30분...

30분전인데 1시간 30분이....

도대체 왜 저렇게 되는거지??

숫자 계산은 알아서해주세요 ㅜㅜ

한계에요...

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 119
© SIRSOFT
현재 페이지 제일 처음으로