동일한 칼럼값을 가지는 테이블끼리 값들 옮겨 넣기.. > PHP

본문 바로가기

사이트 내 전체검색

뒤로가기 PHP

동일한 칼럼값을 가지는 테이블끼리 값들 옮겨 넣기..

페이지 정보

작성자 최고관리자 작성일 21-02-09 11:54 조회 7,220 댓글 0

본문

1. 테이블 생성하고 데이터 입력
CREATE TABLE IF NOT EXISTS `새로운테이블` select * from `기존테이블`  WHERE 조건절

1. 완전동일하게 넣기
$isql = "INSERT INTO 옮길테이블 SELECT * FROM 기존테이블 WHERE no = '$no'";
 $iresult = mysql_query($isql);


 2. 특정칼럼 제외하고 넣기  (같은 테이블에서 레코드 복사할때 사용해도 됨.)
    function recode_copy ($tbname, $sqlwhere, $exceptcolumn){
        //$tbname  : 해당 테이블명
        //$sqlwhere: 조건문
        //$exceptcolumn : 제외시키고자 하는 칼럼명들, 배열형태로, PRIMARY, 유니크등은 제외해야 함.

        Global $connect;
       
        $newfiedName = array();
        $newfiedValue = array();
       
        if($sqlwhere == '' || !$sqlwhere) $sqlwhere = 1;
        $sql = "select * from $tbname where $sqlwhere";
        $result = mysql_query($sql);
        $fieldsno = mysql_num_fields($result);
        $row = mysql_fetch_array($result);
       
        for($i=0; $i < $fieldsno; $i++){
            $fiedName = mysql_field_name($result, $i);
            $skip = 'N';
            for($ni=0;$ni < count($exceptcolumn);$ni++)
            {
                if($fiedName == $exceptcolumn[$ni]) {
                    $skip = 'Y';
                    break;
                }
                }
               
                if($skip == 'N'){
                eval("\$fiedValue = \$row[\$fiedName];");
                $newfiedName[] = "`" . $fiedName . "`";
                $newfiedValue[] = "'" . addslashes($fiedValue) . "'";
            }               
        }
       
        $pisql = "insert into $tbname (".implode(",", $newfiedName).")";
        $pisql .= " values(".implode(",", $newfiedValue).")";
        $piresult = mysql_query($pisql);
        $new_uid = mysql_insert_id();
        return $new_uid;
    }

 3. 기존테이블의 특정한 칼럼들만 다른 테이블에 입력 하고자 할때.
INSERT INTO  `입력테이블` ( c, b ) SELECT a, b FROM  `기존테이블` ;

댓글목록 0

등록된 댓글이 없습니다.

Copyright © beautipia.co.kr. All rights reserved.

contact : webmaster@beautipia.co.kr

PC 버전으로 보기