2017-02-24 11 views
-1

내 스크립트가 가져 오기 문서의 특정 기호 다음에 자동으로 ID를 정렬하는 데 도움이 필요합니다. MYSQL에 동일한 ID를 다른 열에 삽입하십시오.

내가

ID____PRODUCT___________ 
1_____prod1*prod2*prod3_ 
2_____prod1*prod2*prod3_ 
3_____prod1*prod2*prod3_ 

을 포함하는 엑셀 형식으로 문서, 그래서 내가해야 할 일이

ID____PRODUCT____ 
1_____prod1______ 
1_____prod2______ 
1_____prod3______ 
2_____prod1______ 
2_____prod2______ 
2_____prod3______ 
3_____prod1______ 
3_____prod2______ 
3_____prod3______ 

과 같을 것이다 MySQL의에 삽입되어이 너무 너무 후 확인해야합니다 모든 * 그것에서 새로운 객체를 만들 것입니다, 지금까지이 스크립트는 2 컬럼으로 정렬합니다. 다른 컬럼이 동일한 ID로 정렬되도록 만들 필요가 있습니다. 어떤 아이디어?

 while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) 
    { 
     $count++;          

     $expl=explode(";",$emapData[0]); $string1 = $expl[0]; $string2 = $expl[1]; 

     if($count>1){        
      $sql = "INSERT into products(a,b) values ('$string1','$string2')"; 
      mysql_query($sql); 
     }           
    } 

해당 csv 파일이므로 별개입니다. 왜 내가 그것을 폭발시킬 필요가 있는지.

그래서 모든 제품을 new *로 삽입해야합니다. 다른 폭발을 사용한다고 상상할 수도 있지만, 첫 번째 ID와 동일한 ID를 가진 새로운 열에 삽입 할 수 있도록 할당하는 방법은 무엇입니까?

+1

는'*', 모든 값을 통해 루프 삽입이 또한'()'기능을 MySQL의 사용을 중지하십시오! 'mysqli/pdo'를 확인하십시오. – JustBaron

+0

그래, 잘 팁과 트릭을 가져 주셔서 감사 드리며, MySQL 기능 만 사용하고 있습니다. 사적인 용도로만 사용하고, 스크립트를 업로드 한 다음 1 년에 한 번씩 또는 그 이상의 기능을 사용합니다. 다시 한 번 감사드립니다! –

답변

0

//connect using mysqli 
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
    while (($emapData = fgetcsv($file, 10000, ",")) !== FALSE) 
    { 
     $count++;          

     $expl=explode(";",$emapData[0]);  
     $string1 = $expl[0];//ID like 1  
     $string2 = $expl[1];//the prod1*prod2*prod3 
     $arr_of_products = explode("*",$string2); 
     foreach ($arr_of_products as $value) { 
      $sql = "INSERT into products(a,b) values ('$string1','$value')"; 
      //mysql_query($sql); do not use it 
      $result = $mysqli->query($sql); 
     } 

    } 
당신은에 의해`$의 string2` 폭발 할 필요가
+0

@ Strawberry 방금 질문에 답했습니다. 어떤 API의 사용법은 사용자 자신에게 달려 있으며 그는 그것에 대한 조언을 구하지 않았습니다. 그래서 나는 정말로 downvote에 대한 이유를 보지 못한다. –

+1

mysql_ * 함수 사용에 대한 많은 해답이 있습니다. 그러나 10 년 정도 지나면 우리 모두는 이러한 질문에 답하는 것을 멈추고 ** OP 업데이트를하거나 PDO 또는 MySQLi를 사용합니다. – davejal

+0

downvote imo에 대한 이유는 아직 없습니다. 어쨌든 내 대답을 바 꾸었습니다. –