테스트 사이트 - 개발 중인 베타 버전입니다

SQL 에서 DB 에 저장할때 코드를 좀더 단순화 하고 싶습니다.. 채택완료

초보자나요 8년 전 조회 5,535

안녕하세요!

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개

채택된 답변
+20 포인트
F
8년 전

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개

초보자나요
8년 전
망고님 위 소스랑 제가 댓글로 달은 소스랑 같습니다.
해당 소스로는 안되요 ㅠㅠ
h
hb망고
8년 전
제가 답변한건 sql_query($sql); 이부분이 for문 안에 잇고
님 댓글에는 for문 밖에 잇죠 같은건 맞는데 밖이냐 안이냐 차이죠 ㅎㅎ
초보자나요
8년 전
for 문 밖에서 돌리면 안되는것이였군요.. 죄송합니다^^;;

그런데 위처럼 하니 test02 테이블에 무조건 1 2 3 4 이런 순서대로
숫자만 자동으로 저장이 되네요..
h
hb망고
8년 전
수정전: $sql = "UPDATE adp_test_db SET adp_test_02=$modify02_'".$i2."' where adp_test_01='".$i2."'";

수정후: $sql = "UPDATE adp_test_db SET adp_test_02='${"modify02_$i2"}' where adp_test_01='".$i2."'";

이런식으로 바꿔보세요 ~
초보자나요
8년 전
망고님 수정후 로 사용하니 아주 잘됩니다^^
정말 감사합니다!

덕분에 sql 단에서 변수 사용이 조금은 이해가 되네요! 좋은 주말 보내세요!!

댓글을 작성하려면 로그인이 필요합니다.

8년 전

균이님 댓글엔 표를 사용할수 없어서 여기에 다시 남깁니다.

 

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 로 해결하려 한것입니다.

 

이것보다 더 좋은 방법이 있으면 좋겠지만

제 이해 수준에서는 이 방법이 제일먼저 떠오르더라구요^^;;

 

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

8년 전

 

$modify02_1 과 $modify01_1

$modify02_2 와 $modify01_2

~~

~~

$modify02_200 과 $modify01_200

 

위 앞뒤 값 사이에 어떤 규칙 같은 것은 없나요?

쿼리를 한꺼번에 200번씩 실행한다는 것은 거시기 한 일입니다

질문한 코드를 for문으로 간단히 하는 것은 망고님 답변처럼 하면 되는 것이지만....

구체적으로 어떤 내용의 작업인지 한번 올려보세요

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

초보자나요
8년 전
균이님 안녕하세요!!

요즘 sql 쪽에 호기심이 생겨서 간이 게시판 형태로 만들어보고 있는 중이에요.
데이터를 DB에 저장하고 불러오는데
전에는 1쿼리 == 1 DB 이런식으로 불러왔는데요
그렇게 하다보니 테이블 안의 쿼리가 너무 많아져서 리스트 형식으로 사용해보려고 공부중입니다.

다행이 망고님 답변으로 해결이 되었네요.
초보자나요
8년 전
혹시 쿼리를 한번에 200개 실행하면 서버에 부하가 많이 갈까요?
아까 모르고 코딩을 잘못해서 무한루프로 하니 서버가 멈추더라구요..

그리고 이 쿼리는 관리자만 설정하는 용도로 사용할거라
일반 유저는 사용을 안하구요

만약 200개 정도 쿼리를 날리면 서버 부하가 심할까요?

댓글을 작성하려면 로그인이 필요합니다.

a
8년 전

 

 for ($=0; $i<=200; $++) { 

 $sql = “UPDATE test_db SET test_02 = $modify02_\$i\ where test_01 = $modify01_\$i\”;

 } 

 sql_query($sql);

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

초보자나요
8년 전
답변 감사합니다.
위 소스로는 구문오류가 뜹니다.ㅠ

댓글을 작성하려면 로그인이 필요합니다.

8년 전

짱구를 좀 굴려서

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);

 

이렇게 날려봤는데 잘 안되네요..

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인