SQL 에서 DB 에 저장할때 코드를 좀더 단순화 하고 싶습니다.. 채택완료
안녕하세요!
sir 여러 고수님들의 도움으로 등록, 보기에서 이제 저장까지 왔습니다.
$sql1 = "UPDATE test_db SET test_02=$modify02_1 where test_01=$modify01_1"; sql_query($sql1);
$sql2 = "UPDATE test_db SET test_02=$modify02_2 where test_01=$modify01_2"; sql_query($sql2);
$sql3 = "UPDATE test_db SET test_02=$modify02_3 where test_01=$modify01_3"; sql_query($sql3);
$sql4 = "UPDATE test_db SET test_02=$modify02_4 where test_01=$modify01_4"; sql_query($sql4);
$sql5 = "UPDATE test_db SET test_02=$modify02_5 where test_01=$modify01_5"; sql_query($sql5);
$sql6 = "UPDATE test_db SET test_02=$modify02_6 where test_01=$modify01_6"; sql_query($sql6);
$sql7 = "UPDATE test_db SET test_02=$modify02_7 where test_01=$modify01_7"; sql_query($sql7);
$sql8 = "UPDATE test_db SET test_02=$modify02_8 where test_01=$modify01_8"; sql_query($sql8);
$sql9 = "UPDATE test_db SET test_02=$modify02_9 where test_01=$modify01_9"; sql_query($sql9);
echo "<script>location.href='$PHP_SELF';</script>";
이런식으로 modify01_1 ~ modify01_9 까지의 내용을 날리고 있는데요
이걸 for ($i=1; $i<=200; $i++) { 이런식으로 $i 값으로 하려합니다.
그리고 $i<=200 이부분에서 200개 만드는데 이걸 데이터의 갯수로 하면 어떻게 될까요?
test_01 컬럼에는 숫자만 들어갑니다.
항상 감사합니다^^
답변 5개
for ($i2=1; $i2<=9; $i2++) {
$sql = "UPDATE adp_test_db SET adp_test_02=$modify02_'".$i2."' where adp_test_01='".$i2."'";
sql_query($sql);
}
답변에 대한 댓글 5개
님 댓글에는 for문 밖에 잇죠 같은건 맞는데 밖이냐 안이냐 차이죠 ㅎㅎ
그런데 위처럼 하니 test02 테이블에 무조건 1 2 3 4 이런 순서대로
숫자만 자동으로 저장이 되네요..
수정후: $sql = "UPDATE adp_test_db SET adp_test_02='${"modify02_$i2"}' where adp_test_01='".$i2."'";
이런식으로 바꿔보세요 ~
정말 감사합니다!
덕분에 sql 단에서 변수 사용이 조금은 이해가 되네요! 좋은 주말 보내세요!!
댓글을 작성하려면 로그인이 필요합니다.
균이님 댓글엔 표를 사용할수 없어서 여기에 다시 남깁니다.
DB 테이블명 : test_db
test_01(id) |
test_02(과일) |
test_03(꽃) |
test_04(동물) |
1 |
딸기 |
장미 |
사자 |
2 |
사과 |
데이지 |
호랑이 |
3 |
수박 |
백합 |
늑대 |
DB단이 이런 구조로 되어있는데요
DB를 가져오고 만드는건 알겠는데 수정이 잘 안되어서요.
id 단에는 숫자만 들어가게 만들었구요
test_02, test_03, test_04 이 부분을 수정해야하는데
수정 기준을 test_01 값으로 찾아서 수정하는걸 공부하고 있거든요
개별적으로 수정은 간단한데 리스트상의 모든 걸 수정하려면 그만큼 쿼리를 날려야해서
$i 로 해결하려 한것입니다.
이것보다 더 좋은 방법이 있으면 좋겠지만
제 이해 수준에서는 이 방법이 제일먼저 떠오르더라구요^^;;
댓글을 작성하려면 로그인이 필요합니다.
$modify02_1 과 $modify01_1
$modify02_2 와 $modify01_2
~~
~~
$modify02_200 과 $modify01_200
위 앞뒤 값 사이에 어떤 규칙 같은 것은 없나요?
쿼리를 한꺼번에 200번씩 실행한다는 것은 거시기 한 일입니다
질문한 코드를 for문으로 간단히 하는 것은 망고님 답변처럼 하면 되는 것이지만....
구체적으로 어떤 내용의 작업인지 한번 올려보세요
답변에 대한 댓글 2개
요즘 sql 쪽에 호기심이 생겨서 간이 게시판 형태로 만들어보고 있는 중이에요.
데이터를 DB에 저장하고 불러오는데
전에는 1쿼리 == 1 DB 이런식으로 불러왔는데요
그렇게 하다보니 테이블 안의 쿼리가 너무 많아져서 리스트 형식으로 사용해보려고 공부중입니다.
다행이 망고님 답변으로 해결이 되었네요.
아까 모르고 코딩을 잘못해서 무한루프로 하니 서버가 멈추더라구요..
그리고 이 쿼리는 관리자만 설정하는 용도로 사용할거라
일반 유저는 사용을 안하구요
만약 200개 정도 쿼리를 날리면 서버 부하가 심할까요?
댓글을 작성하려면 로그인이 필요합니다.
for ($=0; $i<=200; $++) {
$sql = “UPDATE test_db SET test_02 = $modify02_\$i\ where test_01 = $modify01_\$i\”;
}
sql_query($sql);
답변에 대한 댓글 1개
위 소스로는 구문오류가 뜹니다.ㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
해당 소스로는 안되요 ㅠㅠ