[스크립트] 깔끔한 이미지 보기창 입니다.

글쓴이 : 서비큐라 날짜 : 06-01-27 10:22 조회 : 958

http://comedu.korea.ac.kr/~subicura/java/showImage.htm (534)

이미지를 클릭했을 때 비율 조정하여 새창을 열어줍니다~

일반적인 기능에 마우스 드래그, 휠(IE), 확대/축소 기능을 넣었습니다.

필요 하신분 쓰세요~

버그나 제안하실점은 코멘 남겨주세요~

————————————— 소스 ———————————————–
/*********************************************************************
* 이미지 새창으로 열어서 보기
* 파일명 : showImage.htm
* 작성자 : 서비큐라(subicura@nate.com)
* 작성일 : 06/01/27
* 상업적인 싸이트에서는 무단으로 사용할 수 없습니다.
*********************************************************************/
/*********************************************************************
* 이미지를 볼때 하나의 윈도우만 사용할 것인가?
* isUsePerText : % 표시 유무
* newWndMargin : 윈도우 해상도에서 이미지 창의 여유(margin)값
* newWndMinSize : 창의 최소 크기
*********************************************************************/
var isUsePerText = true;
var newWndMargin = 160;
var newWndMinSize = 250;

/*********************************************************************
* 각종변수
*********************************************************************/
var ImgWnd, isUseZoom, isZoom ;
var img_original_width, img_original_height, img_modify_width, img_modify_height;
var pop_mouse_x, pop_mouse_y, pop_scroll_x, pop_scroll_y, pop_mouseStatus;
var zoombox_x, zoombox_y;

/*********************************************************************
* 시작함수
*********************************************************************/
function showImage(filename)
{
image_copy = new Image();
image_copy.src = filename;

if(image_copy.width == 0 || image_copy.height == 0)
setTimeout(“showImage(‘”+filename+”‘);”,50);
else
popupImage(image_copy);
}

/*********************************************************************
* 이미지 팝업창 생성
*********************************************************************/
function popupImage(img_obj)
{
// 변수 초기화
initValue();

// 이미지 width, height 저장
img_original_width = img_obj.width;
img_original_height = img_obj.height;

// 생성될 창의 크기 조정
if(img_original_width + newWndMargin > screen.width)
{
img_modify_width = screen.width – newWndMargin;
img_modify_height = (img_original_height*img_modify_width/img_original_width);
if(img_modify_height + newWndMargin > screen.height)
{
img_modify_height = screen.height – newWndMargin;
img_modify_width = Math.ceil(img_original_width*img_modify_height/img_original_height);
}
}
else if(img_original_height + newWndMargin > screen.height)
{
img_modify_height = screen.height – newWndMargin;
img_modify_width = Math.ceil(img_original_width*img_modify_height/img_original_height);
}
else
{
img_modify_width = img_original_width;
img_modify_height = img_original_height;
}

// 위치 조정
var i_left = Math.ceil((screen.width – img_modify_width)/2);
var i_top = Math.ceil((screen.height – img_modify_height)/2);
if(i_top > newWndMargin)
i_top = newWndMargin;

// 확대 축소 사용여부
if(img_original_width != img_modify_width && img_original_height != img_modify_height)
isUseZoom = true;
else
isUseZoom = false;

// 새창 만들기
if(ImgWnd) ImgWnd.close(); // 초기화
if(img_original_width > newWndMinSize || img_original_height > newWndMinSize)
{
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+img_modify_width+’, height=’+img_modify_height+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
if(!ImgWnd.document.body)
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+img_modify_width+’, height=’+img_modify_height+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
}
else
{
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+newWndMinSize+’, height=’+newWndMinSize+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
if(!ImgWnd.document.body)
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+newWndMinSize+’, height=’+newWndMinSize+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
}

if(ImgWnd.document.body.innerHTML)
{
ImgWnd.close();
if(img_original_width > newWndMinSize || img_original_height > newWndMinSize)
{
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+img_modify_width+’, height=’+img_modify_height+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
if(!ImgWnd.document.body)
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+img_modify_width+’, height=’+img_modify_height+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
}
else
{
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+newWndMinSize+’, height=’+newWndMinSize+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
if(!ImgWnd.document.body)
ImgWnd = window.open(”, ‘viewImage’, ‘width=’+newWndMinSize+’, height=’+newWndMinSize+’, top=’+i_top+’, left=’+i_left+’, scrollbars=0,resizable=no’);
}
}

// 새창 초기화
initImgWnd(ImgWnd);

// 이미지 생성
var doc = ImgWnd.document;
var doc_style = doc.body.style;
var resize_width, resize_height;

if(img_original_width > newWndMinSize || img_original_height > newWndMinSize)
{
var new_img = doc.createElement(‘IMG’);
new_img.id = ‘showImage’;
new_img.src = img_obj.src;
new_img.width = img_modify_width;
new_img.height = img_modify_height;
doc.body.appendChild(new_img);
}
else
{
doc_style.background=’url(‘+img_obj.src+’)’;
doc_style.backgroundRepeat = ‘no-repeat’;
doc_style.backgroundPosition = ‘center’;
doc_style.backgroundColor = “#000000”;
doc.body.innerHTML = “

“;
}

// 새창에 각종객체 삽입
if(isUseZoom == true)
{
var old_zoom_box = ImgWnd.document.getElementById(‘zoom_box’);

// zoom 관련 객체를 묶음
var zoom_box = doc.createElement(‘DIV’);
zoom_box.id = ‘zoom_box’;
zoom_box.style.position = ‘absolute’;
zoom_box.style.top = img_modify_height – 60;
zoom_box.style.left = img_modify_width – 64;
zoom_box.style.width = 38;
zoom_box.style.height = 43;
doc.body.appendChild(zoom_box);

// zoom 버튼 생성
var zoom_button = doc.createElement(‘IMG’);
zoom_button.id = ‘zoom_button’;
zoom_button.src = ‘http://comedu.korea.ac.kr/~subicura/java/100_icon.gif’;
zoom_button.style.position = ‘absolute’;
zoom_button.style.width = 38;
zoom_button.style.height = 43;
zoom_button.style.top = ‘0px’;
zoom_button.style.left = ‘0px’;
zoom_box.appendChild(zoom_button);

if(isUsePerText == true)
{
// 비율 글자 생성
var zoom_percent = doc.createElement(‘DIV’);
zoom_percent.id = ‘zoom_percent’;
zoom_percent.style.position = ‘absolute’;
zoom_percent.style.top = ’29px’;
zoom_percent.style.left = ‘3px’;
zoom_percent.style.width = ’30px’;
zoom_percent.style.textAlign = ‘center’;
zoom_percent.style.fontSize = ‘8pt’;
zoom_percent.style.fontFamily = ‘돋움’;
zoom_percent.innerHTML = Math.round(img_modify_width/img_original_width*100)+’%’;
zoom_box.appendChild(zoom_percent);
}
zoombox_x = eval(zoom_box.style.left.substring(0,zoom_box.style.left.length-2));
zoombox_y = eval(zoom_box.style.top.substring(0,zoom_box.style.top.length-2));

setButtonAlpha(70);
}

// 마우스 이벤트
doc.onmousedown=ImageMouseDown;
doc.onmousemove=ImageMouseDrag;
doc.onmouseup=ImageMouseUp;
doc.onmousewheel=ImageMouseWheel; // IE 전용 FF는?

// 포커스
ImgWnd.focus();
}

/*********************************************************************
* 창 초기화
*********************************************************************/
function initImgWnd()
{
var doc = ImgWnd.document;
var doc_style = doc.body.style;

doc_style.margin = 0;
doc_style.background=’url(“http://comedu.korea.ac.kr/~subicura/java/loading.jpg”)’;
doc_style.backgroundRepeat = ‘no-repeat’;
doc_style.backgroundPosition = ‘center’;
doc_style.backgroundColor = “#000000”;
doc_style.cursor = “pointer”;
doc.title = ‘이미지’;
}

/*********************************************************************
* 창 삭제
*********************************************************************/
function destroyImgWnd()
{
initValue();
ImgWnd.document.body.style.cursor = ”;
setTimeout(“ImgWnd.close(); ImgWnd=”;”,10);
ImgWnd.document.onmousedown=null;
ImgWnd.document.onmousemove=null;
ImgWnd.document.onmouseup=null;
ImgWnd.document.onmousewheel=null;
}

// 각종변수 초기화
function initValue()
{
isZoom = false;
wheelCount = 0;
pop_scroll_x = pop_scroll_y = 0;
pop_mouseStatus = ”;
}

/*********************************************************************
* 마우스 이벤트
*********************************************************************/
function ImageMouseDown(e)
{
if (ImgWnd.window.event) // IE
{
pop_mouse_x = ImgWnd.window.event.clientX;
pop_mouse_y = ImgWnd.window.event.clientY;
if(ImgWnd.window.event.srcElement.id == ‘zoom_button’ || ImgWnd.window.event.srcElement.id == ‘zoom_percent’)
{
pop_mouseStatus = ”;
zoomImg();
}
else if(ImgWnd.window.event.button != 2 && ImgWnd.window.event.button != 4)
pop_mouseStatus = ‘drag’;
}
else
{
pop_mouse_x = e.clientX;
pop_mouse_y = e.clientY;
if(e.target.getAttribute(‘id’) == ‘zoom_button’ || e.target.getAttribute(‘id’) == ‘zoom_percent’)
{
pop_mouseStatus = ”;
zoomImg();
}
else if(e.button != 2 && e.button != 1)
pop_mouseStatus = ‘drag’;
}

// 클릭순간의 좌표 기억
pop_scroll_x = ImgWnd.document.body.scrollLeft;
pop_scroll_y = ImgWnd.document.body.scrollTop;

// 커서 모양 바꿈
if(isZoom == true)
ImgWnd.document.body.style.cursor = “move”;

return false;
}

function ImageMouseUp(e)
{
ImgWnd.document.body.style.cursor = “pointer”;
// 종료
if (ImgWnd.window.event) // IE
{
if(pop_mouse_x == ImgWnd.window.event.clientX && pop_mouse_y == ImgWnd.window.event.clientY && pop_mouseStatus == ‘drag’)
destroyImgWnd();
}
else
{
if(pop_mouse_x == e.clientX && pop_mouse_y == e.clientY && pop_mouseStatus == ‘drag’)
destroyImgWnd();
}

// 아이콘 위치 이동
if(isUseZoom == true)
{
if(pop_mouseStatus == ‘drag’ && isZoom == true)
{
var zoom_box = ImgWnd.document.getElementById(‘zoom_box’);
zoom_box.style.left = (ImgWnd.document.body.scrollLeft + zoombox_x)+’px’;
zoom_box.style.top = (ImgWnd.document.body.scrollTop + zoombox_y)+’px’;
zoom_box.style.display = ”;
}
}

// 스크롤 위치 기억/휠 위치 초기화
pop_scroll_y = ImgWnd.document.body.scrollTop;
wheelCount = 0;

pop_mouseStatus = ”;
return false;
}

function ImageMouseDrag(e)
{
// 드래그할때 스크롤링
if(pop_mouseStatus == ‘drag’ && isZoom == true)
{
// 줌버튼 숨김
ImgWnd.document.getElementById(‘zoom_box’).style.display = ‘none’;

if(ImgWnd.window.event) // IE
ImgWnd.scroll(pop_scroll_x + (pop_mouse_x – ImgWnd.window.event.clientX)*2, pop_scroll_y+(pop_mouse_y – ImgWnd.window.event.clientY)*2);
else
ImgWnd.scroll(pop_scroll_x + (pop_mouse_x – e.clientX)*2, pop_scroll_y+(pop_mouse_y – e.clientY)*2);

}
else if(pop_mouseStatus == ‘drag’ && isZoom == false)
;// 뭔가 들어가야 되는데 쩝;
else
ImgWnd.document.body.style.cursor = “pointer”;

// zoom 롤오버 체크
if(isUseZoom == true)
{
if (ImgWnd.window.event) // IE
{
if(ImgWnd.window.event.srcElement.id == ‘zoom_button’ || ImgWnd.window.event.srcElement.id == ‘zoom_percent’)
setButtonAlpha(95);
else
setButtonAlpha(70);
}
else
{
if(e.target.getAttribute(‘id’) == ‘zoom_button’ || e.target.getAttribute(‘id’) == ‘zoom_percent’)
setButtonAlpha(95);
else
setButtonAlpha(70);
}
}

return false;
}

function ImageMouseWheel(e)
{
if(isZoom == true)
{
var zoom_box = ImgWnd.document.getElementById(‘zoom_box’);
var temp = ImgWnd.document.body.scrollTop;

wheelCount += (ImgWnd.window.event.wheelDelta > 0) ? 1 : -1;
zoom_box.style.display = ‘none’;
ImgWnd.scroll(pop_scroll_x, (pop_scroll_y-wheelCount*120));

if(temp != ImgWnd.document.body.scrollTop)
{
zoom_box.style.left = (ImgWnd.document.body.scrollLeft + zoombox_x)+’px’;
zoom_box.style.top = (ImgWnd.document.body.scrollTop + zoombox_y)+’px’;
}
else
{
wheelCount -= (ImgWnd.window.event.wheelDelta > 0) ? 1 : -1;
}
zoom_box.style.display = ”;
}
}

/*********************************************************************
* 버튼 투명도 조정
*********************************************************************/
function setButtonAlpha(opacity)
{
var zoom_box;
zoom_box = ImgWnd.document.getElementById(‘zoom_box’);
zoom_box.style.filter = “alpha(opacity=” + opacity + “)”;
zoom_box.style.KhtmlOpacity = (opacity / 100);
zoom_box.style.MozOpacity = (opacity / 100);
}

/*********************************************************************
* 이미지 줌인/줌아웃
*********************************************************************/
function zoomImg()
{
// 이미지 관련
var zoom_img = ImgWnd.document.getElementById(‘showImage’);
var per_text = ImgWnd.document.getElementById(‘zoom_percent’);
per_text.innerHTML = Math.ceil(zoom_img.style.width/img_original_width*100)+’%’;

// 윈도우 창 크기 조정 관련
var resize_width=0, resize_height=0;

if(zoom_img.clientWidth == img_original_width)
{
zoom_img.style.width = img_modify_width;
zoom_img.style.height = img_modify_height;
per_text.innerHTML = Math.ceil(img_modify_width/img_original_width*100)+’%’;
isZoom = false;

// 창 크기 조정
if(img_modify_width == screen.width – newWndMargin)
{
if(!ImgWnd.window.innerHeight) // IE
resize_height = img_modify_height – ImgWnd.window.document.body.offsetHeight;
else
resize_height = img_modify_height – ImgWnd.window.innerHeight;
}
else
{
if(!ImgWnd.window.innerWidth) // IE
resize_width = img_modify_width – ImgWnd.window.document.body.offsetWidth;
else
resize_width = img_modify_width – ImgWnd.window.innerWidth;
}

// 버튼 위치 초기화
var zoom_box = ImgWnd.document.getElementById(‘zoom_box’);
zoom_box.style.left = zoombox_x + ‘px’;
zoom_box.style.top = zoombox_y + ‘px’;

// 버튼 이미지 변경
var zoombutton = ImgWnd.document.getElementById(‘zoom_button’);
zoombutton.src = ‘http://comedu.korea.ac.kr/~subicura/java/100_icon.gif’;

}
else
{
zoom_img.style.width = img_original_width;
zoom_img.style.height = img_original_height;
per_text.innerHTML = ‘100%’;
isZoom = true;

var zoombutton = ImgWnd.document.getElementById(‘zoom_button’);
zoombutton.src = ‘http://comedu.korea.ac.kr/~subicura/java/00_icon.gif’;

// 창 크기 조정
if(img_modify_width+newWndMargin == screen.width)
{
if(img_original_height+newWndMargin > screen.height)
resize_height = screen.height-newWndMargin-img_modify_height;
else
resize_height = img_original_height-img_modify_height;
}
else
{
if(img_original_width+newWndMargin > screen.width)
resize_width = screen.width-newWndMargin-img_modify_width;
else
resize_width = img_original_width-img_modify_width;
}
}

// 창 크기 조정
if(Math.abs(resize_width) > 70 || Math.abs(resize_height) > 70)
{
if(navigator.appName.indexOf(“Microsoft”) != -1) // IE Bug
ImgWnd.moveTo(0,0);
ImgWnd.resizeBy(resize_width,resize_height);

// 윈도우 창 위치 조정
if(!ImgWnd.window.innerHeight) // ie
{
ImgWnd.moveTo(Math.ceil((screen.width – ImgWnd.window.document.body.offsetWidth)/2), Math.ceil((screen.height – ImgWnd.window.document.body.offsetHeight)/2));
}
else
{
ImgWnd.moveTo(Math.ceil((screen.width – ImgWnd.window.innerWidth)/2), Math.ceil((screen.height – ImgWnd.window.innerHeight)/2));
}

// 줌 버튼 위치 이동
var zoom_box = ImgWnd.document.getElementById(‘zoom_box’);
zoombox_x += resize_width;
zoombox_y += resize_height;
zoom_box.style.left = zoombox_x+’px’;
zoom_box.style.top = zoombox_y+’px’;
}
}

[스크립트] 새로고침없는 DB검색 리스트 뿌리기 JS+PHP

글쓴이 : 개발소발 날짜 : 06-01-14 14:14 조회 : 1701

http://www.ebaygolf.co.kr/shop_dmz/shop_search.php (285)

거침마루님의 Dynamic.js를 응용해서 해 봤는데 재미 있군요.
스크립트로 테이블을 만들어 innerHTML로 뿌리는 식입니다.

다음에는 ajax로 해 봐야 겠습니다.

현재 운영하는 싸이트의 소스 그대로 올리니 이해 해 주세요.
————검색 하는 페이지———————–




————————여기까지가 검색하는 페이지———————

여기부터는 DB검색해서 스크립트로 테이블을 만드는 페이지 입니다.
…………………………….DB검색 쿼리문
…………………………….
…………………………….
if($z < 1){
echo”alert(‘선택하신 지역에 골프관련 매장 데이터가 없습니다.’);
“;
exit;
}

echo “var objTable, objTBody, objRow, objCell
“;

echo “objTable = document.all.s_go;
“;
echo “t_lg = objTable.rows.length;
“;

echo ” for(p=0; p “;
echo ” objTable.deleteRow();
“;
echo ” }
“;

echo “objTBody = document.createElement(‘TBODY’);
“;
echo “objTable.appendChild(objTBody);
“;

echo “objRow = document.createElement(‘TR’);
“;
echo “objRow.setAttribute(‘bgcolor’,’#EBEBEB’,0);
“;
echo “objTBody.appendChild(objRow);
“;
echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘height’,1,0);
“;
echo “objCell.setAttribute(‘colspan’,7,0);
“;
echo “objRow.appendChild(objCell);
“;
//echo “objCell.innerHTML = ‘‘;
“;

echo “objRow = document.createElement(‘TR’);
“;
echo “objRow.setAttribute(‘bgcolor’,’#FFFFFF’,0);
“;
echo “objTBody.appendChild(objRow);
“;
echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘height’,2,0);
“;
echo “objCell.setAttribute(‘colspan’,7,0);
“;
echo “objRow.appendChild(objCell);
“;
//echo “objCell.innerHTML = ‘‘;
“;

echo “objRow = document.createElement(‘TR’);
“;
echo “objRow.setAttribute(‘bgcolor’,’#F9F9F9′,0);
“;
echo “objRow.setAttribute(‘align’,’center’,0);
“;
echo “objTBody.appendChild(objRow);
“;
echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘width’,’5%’);
“;
echo “objCell.setAttribute(‘height’,30);
“;
echo “objCell.setAttribute(‘align’,’center’);
“;
echo “objCell.setAttribute(‘className’,’Green_txt01′);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘width’,’27%’);
“;
echo “objCell.setAttribute(‘className’,’Green_txt01′);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘width’,’48%’);
“;
echo “objCell.setAttribute(‘className’,’Green_txt01′);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘className’,’Green_txt01′);
“;
echo “objCell.setAttribute(‘width’,’20%’);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;

for($i=0; $i < $z; $i++)
{
$k = $i+1;
echo “objRow = document.createElement(‘TR’);
“;
echo “objRow.setAttribute(‘bgcolor’,’#ffffff’,0);
“;
echo “objTBody.appendChild(objRow);
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘colspan’,2,0);
“;
echo “objCell.setAttribute(‘height’,25,0);
“;
echo “objCell.setAttribute(‘align’,’center’);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘”.$k.”‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘colspan’,2,0);
“;
echo “objCell.style.padding = ‘0,10,0,10’;
“;
echo “objCell.setAttribute(‘className’,’Green_txt01′);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘”.htmlspecialchars($g_shop[‘s_name’][$i]).”‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘colspan’,2,0);
“;
echo “objCell.style.padding = ‘0,10,0,10’;
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘”.htmlspecialchars($g_shop[‘s_addr’][$i]).”‘;
“;

echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.style.padding = ‘0,10,0,10’;
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘”.$g_shop[‘s_tell’][$i].”‘;
“;

if($k != $z){
echo “objRow = document.createElement(‘TR’);
“;
echo “objTBody.appendChild(objRow);
“;
echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘background’,’/shop_dmz/image/MyMGA/LineDot666px.gif’);
“;
echo “objCell.setAttribute(‘colspan’,7,0);
“;
echo “objRow.appendChild(objCell);
“;
//echo “objCell.innerHTML = ‘‘;
“;
}
}

echo “objRow = document.createElement(‘TR’);
“;
echo “objTBody.appendChild(objRow);
“;
echo “objCell = document.createElement(‘TD’);
“;
echo “objCell.setAttribute(‘colspan’,7,0);
“;
echo “objRow.appendChild(objCell);
“;
echo “objCell.innerHTML = ‘‘;
“;
?>

————————DB검색해서 스크립트로 테이블 만드는 페이지 끝——————–

실제로 응용해서 사용하고 있는 싸이트 주소 입니다.
http://www.ebaygolf.co.kr/shop_dmz/shop_search.php

그냥 이런식으로도 사용하는 넘이 있구나….생각 해 주세요 ^^;

mssql to mysql data

빈번하지 않은 mssql -> mysql 로의 DB porting 문제에 골머리를 앓다가 적합한 방법을 찾아내서 그 방법을 제시해본다.

mssql 2000 에 한글을 포함하는 DB를 가진 유저가 mysql로 데이터를 변환하는데 있어서

민감한 부분까지 다 전달되진 않지만 데이터를 유실당하지 않고 사용할 수 있는 적합한 툴이 있다.

Google 에서 mssql to mysql 로 검색을 해보면 다음과 같은 페이지를 만날 수 있다.

http://www.kofler.cc/mysql/mssql2mysql.html

친절하게도 무료로 배포하고 있는데… 잘 읽어보면 답이 있을 것이다.

mssql2mysql-gui2.zip 파일 (첨부파일) 을 다운받아서 사용해보면 적절한 interface로 구성된걸 볼 수 있다.

잘써보자… 하지만 시행착오를 좀 줄이고자 하면 다음을 읽어보면 도움이 될 것 같다.

내가 작업하려는 PC에 mysql을 설치해서 그 곳으로 데이터를 빼낼지 동작중인 원격 서버로 바로 데이터를 보낼지 결정한다.

전자를 선택했을 경우 dump 형식으로 파일을 복원해줘야 하는 번거로움이 있지만 원격 접속에 대한 문제점에서 안전할 수 있다.

후자를 선택해서 원격으로 바로 보내고자 할 경우 /etc/my.cnf 파일에서의 네트웍 설정이 원격지접근을 허용하는지 그리고, mysql 의 user 테이블에 host 값이 % 로 설정 되어 있는지 확인해 보자. 이에 대한 문서는 검색을 통하면 얼마든지 구할 수 있으니 스스로 해보시길…

이정도가 준비되었다면 네트웍설정이 잘 되어 있는지 확인한다.

이 프로그램의 특성상 mysql의 default port 값을 변동 할 수 없음으로 반드시 3306 이 TCP로 LISTEN 이 되어 있어야만 한다.

다음과 같은 명령어로 원격지 서버가 방화벽에 걸려있는지 확인한다.

$ telnet 123.xxx.xxx.xxx 3306

원격지에 대한 접근허용을 거부한다는 명령어가 나오지 않고 프롬프트가 열린다면 접근이 허용된것이다. (열렸음에도 접근이 안된다면 DB의 사용자 설정을 다시 확인해보자.. mysql 데몬을 재시작해주는 것도 있지말자)

윈도우에 mysql ODBC를 설치하고 연결을 해줘야만 이 프로그램을 사용할 수 있다.

만약 ODBC가 없다면 mssql 을 mysqldump 타입으로 파일로 만들어 낼 수 있는 기능이 있다.

물론 복원시켜주는 번거로움이 있겠지만 급한데로 쓰기 쉽다.

index 값이나 primary key값 date type 을 잘 변환 시켜준다.

간혹 윈도우용 mysql 서버로 전달된 파일을 dump 할때 한글이 깨지는 경우가 있는데 이럴경우 직접 client pc에 DB를 파일로 만들어내서 다시 서비스 해주고자 하는 서버에 dump 시켜주면 데이터를 완전히 재사용 할 수 있다.
1221123276.zip

타 도메인간 쿠키 공유

글을 시작하기전에 아래 팁택 또는 여러 레퍼런스를 뒤지다보면 많은 자료가 있긴하지만

구현 방법에 대한 소스와 설명이 부족한거같아 예제를 같이 올려봅니다

물론 허접할수도있지만 조금이나마 도움이