2011-01-11 2 views
0

Drupal/Ubercart와 사내 관리 시스템간에 통합 피스를 작성 중입니다.Ubercart 테이블의 MySQL을 사용하여 Drupal로 인코딩 된 데이터를 추출하십시오.

고객은 특성 (예 : 이름, 회사, 등록 날짜 및 월을 포함 할 수있는 상패)이있는 Ubercart 제품을 사용합니다. 주문이 이루어지면 속성에 대해 입력 한 값이에 기록됩니다. 여기서 data 필드에는 사용자가 입력 한 실제 값이 들어 있습니다. 내가 알 수있는 한, 이는 주문을하기 위해 최종 사용자가 입력 한 제품 속성 값이 저장되는 유일한 장소입니다.

a:3: 
{ 
    s:10:"attributes"; 
    a:4: 
     { 
      s:26:"Name (to appear on plaque)"; 
      a:1: 
       { 
        i:0; 
        s:10:"Some Namee"; 
       } 
      s:7:"Company"; 
      a:1: 
       { 
        i:0; 
        s:28:"Some Company Name Goes Herep"; 
       } 
      s:19:"Certification Month"; 
      a:1: 
       { 
        i:0; 
        s:0:""; 
       } 
      s:18:"Certification Year"; 
      a:1: 
       { 
        i:0; 
        s:4:"2011"; 
       } 
     } 
    s:9:"shippable"; 
    s:1:"1"; 
    s:6:"module"; 
    s:10:"uc_product"; 
} 

나는 간단한 방법으로 거기에 도착하는 방법 : 그것은 다음과 같습니다,

a:3:{s:10:"attributes";a:4:{s:26:"Name (to appear on plaque)";a:1:{i:0;s:10:"Some 
Namee";}s:7:"Company";a:1:{i:0;s:28:"Some Company Name Goes here_";}s:19:"Certification 
Month";a:1:{i:0;s:0:"";}s:18:"Certification Year";a:1: 
{i:0;s:4:"2011";}}s:9:"shippable";s:1:"1";s:6:"module";s:10:"uc_product";} 

그리고 확장 :

인코딩 된 속성 값

개체를 인코딩하기 위해 모든 드루팔 테이블을 통해 볼 수있는 형식을 사용합니다 이 텍스트 내의 개별 필드 값은 SQL을 사용합니까? 구체화를 찾기 위해 SQL 함수를 작성할 수는 있지만 누군가가 기존의 MySQL 접근법 (아마도 Drupal 내에서)을 알고 있는지 알고 싶습니다.

감사합니다.

답변

0

기본 제공 솔루션이 있는지 모르겠지만 Name (to appear on plaque)과 같은 매개 변수 텍스트로 사용되는 SQL 함수를 작성했습니다. 그런 다음 함수는 텍스트를 찾고 후속 { ... } 블록을 추출하고 해당 문자열 값을 검색합니다. 거칠지 만이 경우에는 효과가 있습니다.

누군가가 더 좋은 해결책을 가지고 있다면, 나는 그것에 대해 듣고 싶습니다!

2

이것은 직렬화 된 배열로, Drupal이 데이타베이스에 삽입하기 전에 PHP's serialize() function에 의해 처리 된 데이터를 의미합니다. 해당 문자열을 다시 배열로 바꾸려면 opposite function unserialize()을 사용하십시오.

+0

PHP 직렬 연결 링크를 제공해 주셔서 감사합니다. – Ryan