묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php소스좀 봐주세요...뭐가 잘못됐는지..[긴급]
2007.04.04 23:34
데이타베이스 가져오기는 되는데...
가져온 데이타를 수정및 추가후 db에 데이타 입력하기가 안됩니다.
소스를 보시면 입력버튼은 눌러지는데 실제 데이타의 변화는 전혀없습니다.
"데이터 입력하기" 는 뭐가 잘못됐는지 전혀 반응이 없습니다.
고수님의 가르침 부탁드리겠습니다.
<?php
switch($mode){
case "get":
//// 데이터베이스 연결 ////
$cp = mysql_connect($dbhost, $mysqlid, $mysqlpw);
$seldb = mysql_select_db($dbname, $cp);
//// 상품데이터를 가져와 txt파일 생성 ////
$fp = fopen("./data.txt", "w");
$result = mysql_query("select ctgrname, lfctgrname, uid, name, maker, sellprice, quantity, comment from goods");
fwrite($fp, "대분류t소분류t상품코드t상품명t제조사t판매가t재고t상세설명rn");
while($row = mysql_fetch_array($result)){
fwrite($fp, "$row[ctgrname]t$row[lfctgrname]t$row[uid]t$row[name]t$row[maker]t$row[sellprice]t$row[quantity]t$row[comment]rn");
}
fclose($fp);
chmod("./data.txt", 0777);
?>
<meta http-equiv="refresh" content="0; url=/makedb.php?mode=finish">
<?php
break;
case "set":
//// 데이터베이스 연결 ////
$cp = mysql_connect($dbhost, $mysqlid, $mysqlpw);
$seldb = mysql_select_db($dbname, $cp);
//// data.txt에서 데이터를 읽어 디비에 입력 ////
$fp = fopen("./data.txt", "r");
$data = fread($fp, filesize("./data.txt"));
$datas = explode("rn", $data);
for($i = 1; $i < sizeof($datas); $i++) {
trim($datas[$i]);
$goods = explode("t", $datas[$i]);
//// 엑셀파일에서 가져온 데이터 ////
$ctgrname = addslashes($goods[0])
$lfctgrname = addslashes($goods[1])
$uid = $goods[2]; //상품코드
$name = addslashes($goods[3]); //상품명
$maker = addslashes($goods[4]); //제조사
$sellprice = str_replace(" ", "", $goods[5]); //판매가
$quantity = addslashes($goods[4]); //재고
$comment = addslashes($goods[5]); //상세설명
//// 상품등록 ////
mysql_query("update goods set ctgrname = '$ctgrname', lfctgrname = '$lfctgrname', name = '$name', maker = '$maker', sellprice = $sellprice, $quantity = '$quantity', comment = '$comment' where uid = $uid");
}
?>
<meta http-equiv="refresh" content="0; url=/makedb.php?mode=finish">
<?php
break;
case "finish":
?>
<table width=100% cellspacing=0 cellpadding=0 align=center>
<tr>
<td height=200 align=center>작업을 마쳤습니다.</td>
</tr>
</table>
<?php
break;
default:
?>
<script language="javascript">
<!--
function chk_dbinfo(form){
if(!form.dbname.value){
alert("데이터베이스 이름을 입력해 주세요.");
form.dbname.focus();
return;
}
if(!form.mysqlid.value){
alert("mysql 아이디를 입력해 주세요.");
form.mysqlid.focus();
return;
}
if(!form.mysqlpw.value){
alert("mysql 비밀번호를 입력해 주세요.");
form.mysqlpw.focus();
return;
}
}
function getdata(form){
chk_dbinfo(form);
form.mode.value = "get";
form.submit();
}
function setdata(form){
chk_dbinfo(form);
form.mode.value = "set";
form.submit();
}
//-->
</script>
<table width=100% cellspacing=0 cellpadding=0 align=center>
<form name="data_form" action="/makedb.php" method=post>
<tr>
<td width=100% height=400 align=center>
<table width=360 cellspacing=0 cellpadding=0 align=center>
<tr>
<td width=180 height=21 align=right>데이터베이스 호스트 </td>
<td width=*><input type=text size=20 name=dbhost></td>
</tr>
<tr>
<td width=180 height=21 align=right>데이터베이스 명 </td>
<td width=*><input type=text size=20 name=dbname></td>
</tr>
<tr>
<td width=180 height=21 align=right>MySql 아이디 </td>
<td width=*><input type=text size=20 name=mysqlid></td>
</tr>
<tr>
<td width=180 height=21 align=right>MySql 비밀번호 </td>
<td width=*><input type=password size=20 name=mysqlpw></td>
</tr>
<tr>
<td height=10></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type=button value="데이터 가져오기" onclick="getdata(document.data_form)">
<input type=button value="데이터 입력하기" onclick="setdata(document.data_form)">
</td>
</tr>
<tr>
<td height=5></td>
</tr>
</table>
</td>
</tr>
<input type=hidden name=mode>
</form>
</table>
<?php
}
?>
입력 후 데이타에는 전혀 반응이 없습니다..어쪄죠.....
six6679@naver.com
가져온 데이타를 수정및 추가후 db에 데이타 입력하기가 안됩니다.
소스를 보시면 입력버튼은 눌러지는데 실제 데이타의 변화는 전혀없습니다.
"데이터 입력하기" 는 뭐가 잘못됐는지 전혀 반응이 없습니다.
고수님의 가르침 부탁드리겠습니다.
<?php
switch($mode){
case "get":
//// 데이터베이스 연결 ////
$cp = mysql_connect($dbhost, $mysqlid, $mysqlpw);
$seldb = mysql_select_db($dbname, $cp);
//// 상품데이터를 가져와 txt파일 생성 ////
$fp = fopen("./data.txt", "w");
$result = mysql_query("select ctgrname, lfctgrname, uid, name, maker, sellprice, quantity, comment from goods");
fwrite($fp, "대분류t소분류t상품코드t상품명t제조사t판매가t재고t상세설명rn");
while($row = mysql_fetch_array($result)){
fwrite($fp, "$row[ctgrname]t$row[lfctgrname]t$row[uid]t$row[name]t$row[maker]t$row[sellprice]t$row[quantity]t$row[comment]rn");
}
fclose($fp);
chmod("./data.txt", 0777);
?>
<meta http-equiv="refresh" content="0; url=/makedb.php?mode=finish">
<?php
break;
case "set":
//// 데이터베이스 연결 ////
$cp = mysql_connect($dbhost, $mysqlid, $mysqlpw);
$seldb = mysql_select_db($dbname, $cp);
//// data.txt에서 데이터를 읽어 디비에 입력 ////
$fp = fopen("./data.txt", "r");
$data = fread($fp, filesize("./data.txt"));
$datas = explode("rn", $data);
for($i = 1; $i < sizeof($datas); $i++) {
trim($datas[$i]);
$goods = explode("t", $datas[$i]);
//// 엑셀파일에서 가져온 데이터 ////
$ctgrname = addslashes($goods[0])
$lfctgrname = addslashes($goods[1])
$uid = $goods[2]; //상품코드
$name = addslashes($goods[3]); //상품명
$maker = addslashes($goods[4]); //제조사
$sellprice = str_replace(" ", "", $goods[5]); //판매가
$quantity = addslashes($goods[4]); //재고
$comment = addslashes($goods[5]); //상세설명
//// 상품등록 ////
mysql_query("update goods set ctgrname = '$ctgrname', lfctgrname = '$lfctgrname', name = '$name', maker = '$maker', sellprice = $sellprice, $quantity = '$quantity', comment = '$comment' where uid = $uid");
}
?>
<meta http-equiv="refresh" content="0; url=/makedb.php?mode=finish">
<?php
break;
case "finish":
?>
<table width=100% cellspacing=0 cellpadding=0 align=center>
<tr>
<td height=200 align=center>작업을 마쳤습니다.</td>
</tr>
</table>
<?php
break;
default:
?>
<script language="javascript">
<!--
function chk_dbinfo(form){
if(!form.dbname.value){
alert("데이터베이스 이름을 입력해 주세요.");
form.dbname.focus();
return;
}
if(!form.mysqlid.value){
alert("mysql 아이디를 입력해 주세요.");
form.mysqlid.focus();
return;
}
if(!form.mysqlpw.value){
alert("mysql 비밀번호를 입력해 주세요.");
form.mysqlpw.focus();
return;
}
}
function getdata(form){
chk_dbinfo(form);
form.mode.value = "get";
form.submit();
}
function setdata(form){
chk_dbinfo(form);
form.mode.value = "set";
form.submit();
}
//-->
</script>
<table width=100% cellspacing=0 cellpadding=0 align=center>
<form name="data_form" action="/makedb.php" method=post>
<tr>
<td width=100% height=400 align=center>
<table width=360 cellspacing=0 cellpadding=0 align=center>
<tr>
<td width=180 height=21 align=right>데이터베이스 호스트 </td>
<td width=*><input type=text size=20 name=dbhost></td>
</tr>
<tr>
<td width=180 height=21 align=right>데이터베이스 명 </td>
<td width=*><input type=text size=20 name=dbname></td>
</tr>
<tr>
<td width=180 height=21 align=right>MySql 아이디 </td>
<td width=*><input type=text size=20 name=mysqlid></td>
</tr>
<tr>
<td width=180 height=21 align=right>MySql 비밀번호 </td>
<td width=*><input type=password size=20 name=mysqlpw></td>
</tr>
<tr>
<td height=10></td>
</tr>
<tr>
<td colspan=2 align=center>
<input type=button value="데이터 가져오기" onclick="getdata(document.data_form)">
<input type=button value="데이터 입력하기" onclick="setdata(document.data_form)">
</td>
</tr>
<tr>
<td height=5></td>
</tr>
</table>
</td>
</tr>
<input type=hidden name=mode>
</form>
</table>
<?php
}
?>
입력 후 데이타에는 전혀 반응이 없습니다..어쪄죠.....
six6679@naver.com
폼값에는 제품 정보에 관한게 없네요 폼 밖에 있으니 당연 불러들이지 못하고
리로드만 시킬것 같은데요
그리고 제일 좋은 디버깅 방법은
php는 에코를 찍어 보는거구 자바 스크립트는 알러트를 날려보는겁니다
정보를 받아와 디비에 입력하는 부분에
필요한 정보가 들어왔는지 변수를 에코로 불러보세요
에코가 찍히면 입력하는 곳의 로직상 문제고 에코가 일어나지 않으면
입력부의 잘못입니다
입력부의 잘못으로 에코가 일어나지 않을수 있으니
최상단에
<?="test";?>와 같이 찍어본다음
한칸씩 내려가면서 받아야할 변수가 들어왔는지 확인해 보세요