select 한 결과 값을 다시 insert 해야 한다면 2번의 질의를 처리해주어야 하는데, 이것을 한번에 처리할 수 있는 것을 insert select 라고 합니다.


두 개 테이블의 칼럼이 동일할 경우 처리하는 방법:


 insert into [테이블] select * from [테이블] where [조건]; 

ex.1)

 insert into table1 select * from table2 where id > 3;




칼럼 수가 다를 경우 처리하는 방법:


 insert into [테이블] [칼럼명] select [칼럼명] from [테이블] where [조건];


 insert into table1 (col1, col2, col3) select col1, col2, col3 from table2 where id > 3;




for 문을 이용해 로또 번호 추출기를 만들어 보겠습니다. for 문을 이용해서 로또 프로그램을 구현해보면 반복문의 이해에 도움이 됩니다.


 <?php

 $arr = array();

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

$arr[$i] = rand(1, 45);

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

if($arr[$i] == $arr[$j]){

$i--;

break;

}

}

 }


 print_r($arr);

 ?>


다음은 추출한 로또 번호를 for문을 이용해 오름차순으로 정렬해 보겠습니다.


 <?

 $arr = array();


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

$arr[$i] = rand(1, 45);

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

if($arr[$i] == $arr[$j]){

$i--;

break;

}

}

  }


 $tmp = 0;

 for($i=0; $i<count($arr); $i++){

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

if($arr[$i] < $arr[$j]){

$tmp = $arr[$i];

$arr[$i] = $arr[$j];

$arr[$j] = $tmp;

}

}

 }


 print_r($arr); 

 ?>