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

영카트 상품 대량 코드 관련 문의

종결자 2년 전 조회 1,193

안녕하세요 그누보드는 초보입니다.

영카트 대량등록관련하여 작성한 코드를 문의드립니다. 제가 생각하기에는 제대로 작성한 것 같은데 작동하지 않네요. 

 

https://sir.kr/qa/113796 의 글을 참고하여 영카트 DB 대량 등록용으로 변경중인데요. 

(해당글은 그누보드 게시글 대량등록 코드입니다.)

제대로 맞게 변경한것 같은데 실제로 DB 에 등록이 되지 않습니다. 실제로 실행하고나면, g5_shop_item 테이블에 DB 거의 전체가 공란으로 한줄이 추가되고, 업로드 하려는 개수만큼 추가가 되지 않습니다. (it_id 값도 빈칸입니다.)

 

제가 보기에는 array 에서는 문제 없는데, 아래의 //변수 정리 단계에서, 어레이에서 변수로 값이 넘가지 않는것 같습니다. 

//변수 정리

$it_id =  $newpost['$it_id'];

 

 

확인해보니, 

echo $line[0]; 하면 조회되는 값이 

echo $newpost[it_id]; 하면 조회 되지 않습니다. 또 

echo $it_idl; 이래도 조회가 되지 않습니다. 

 

 

아래 코드가 제대로 작동하면 문제 없을것 같은데요. 도대체 제가 뭘 잘못하고 잇는지 모르겠습니다. 

$it_id =  $newpost['$it_id'];

 

phpadmin 에서 각 필드에 값을 지정한후 sql 실행탭에서 실행 했을때는 문제없이 DB가 등록이 되었습니다. 

 

여하튼, 아래 코드를 실행하면 다음과 같은 워닝이 뜨기는 합니다. 

 

Warning: Undefined array key "$it_id" in C:\xampp\htdocs\x4\itemup.php on line 21
Warning: Undefined array key "$ca_id" in C:\xampp\htdocs\x4\itemup.php on line 22
Warning: Undefined array key "$ca_id2" in C:\xampp\htdocs\x4\itemup.php on line 23
Warning: Undefined array key "$ca_id3" in C:\xampp\htdocs\x4\itemup.php on line 24

 

아래코드는 실제 코드인데요, 보기 편하라고 필드를 많이 삭제하였습니다. 실제로는 g5_item_shop 의 모든 필드를 다 작성하였는데 앞에 3개만 남기고 삭제하였습니다. 고수분들의 조언 요청드립니다. 감사합니다~!

 

 </p>

<p><?php</p>

<p>//<a href="https://sir.kr/qa/113796" target="_blank" rel="noopener noreferrer">https://sir.kr/qa/113796</a>

define('_INDEX_', true);

include_once('./_common.php');

/*include_once('./c5up.php');*/</p>

<p>/*include_once('./c5-image.php');*/

 

 

//ver1.0 150414 @_untitle_d</p>

<p> 

function insert_write($newpost)

{

  global $g5;</p>

<p>  //변수 정리

$it_id =  $newpost['$it_id'];

$ca_id = $newpost['$ca_id'];

$ca_id2 = $newpost['$ca_id2'];

$ca_id3 = $newpost['$ca_id3'];</p>

<p>  </p>

<p>

  //글 입력하기

  $sql = " insert into 'g5_shop_item' 

              set it_id = $it_id ,

                ca_id= $ca_id ,

                ca_id2='$ca_id2',

                ca_id3='$ca_id3'

 ";</p>

<p>

    sql_query($sql);</p>

<p> 

}

 </p>

<p> 

ini_set('auto_detect_line_endings', true);</p>

<p>$oldMessage = '||||';</p>

<p>$deletedFormat = PHP_EOL;</p>

<p>//read the entire string

 $str=file_get_contents('sam.php');</p>

<p>//replace something in the file string - this is a VERY simple example

$str=str_replace($oldMessage, $deletedFormat,$str);</p>

<p>//write the entire string

file_put_contents('sam.php', $str);</p>

<p>$file=fopen("sam.php","r");

/*  */</p>

<p>while (($line = fgetcsv($file,10000,"^")) !==FALSE ) {</p>

<p>$newpost = array(

      'it_id' =>  $line[0],

      'ca_id' =>  $line[1],

      'ca_id2'  =>  $line[2]</p>

<p>                                    );</p>

<p>

}</p>

<p>

 insert_write($newpost);

/* insert_update($newpost);*/

 /*insert_del($newpost);*/

 /*imageup($imageup);*/</p>

<p>

fclose($file);

 </p>

<p>//insert_write($newpost);</p>

<p>

?>

 </p>

<p> </p>

<p>

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

답변 1개

2년 전

저렇게 $newpost배열에 값을 담으면 while{ }이 끝나면 $newpost에는 맨 마지막 행 하나만 달랑 남습니다

insert_write($newpost); 를 while loop내에 넣어야겠네요

 

$newpost[] = array(~~~); 이렇게  담아서 insert_write()에서 for나 foreach 를 이용해서 하거나....

 

 

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

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

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

로그인