2012-10-09 3 views
0

내가 PrestaShop 버전 1.4.8.3을 실행 해요에서 탭 고객에게 회사 필드를 추가하고 나는백 오피스

 $this->_select = '(YEAR(CURRENT_DATE)-YEAR(`birthday`)) - (RIGHT(CURRENT_DATE, 5)<RIGHT(`birthday`, 5)) as age, (
      SELECT c.date_add FROM ' . _DB_PREFIX_ . 'guest g 
      LEFT JOIN ' . _DB_PREFIX_ . 'connections c ON c.id_guest = g.id_guest 
      WHERE g.id_customer = a.id_customer 
      ORDER BY c.date_add DESC 
      LIMIT 1 
     ) as connect'; 

// This is new code 
$this->_select = '(SELECT d.company FROM ' . _DB_PREFIX_ . 'address d WHERE d.id_customer = a.id_customer LIMIT 1) as company'; 

// LH company name 
$genders = array(
    1 => $this->l('M'), 
    2 => $this->l('F'), 
    9 => $this->l('?')); 
$this->fieldsDisplay = array(
    'id_customer' => array(
     'title' => $this->l('ID'), 
     'align' => 'center', 
     'width' => 25), 
    'id_gender' => array(
     'title' => $this->l('Gender'), 
     'width' => 25, 
     'align' => 'center', 
     'icon' => array(
      1 => 'male.gif', 
      2 => 'female.gif', 
      'default' => 'unknown.gif'), 
     'orderby' => false, 
     'type' => 'select', 
     'select' => $genders, 
     'filter_key' => 'a!id_gender'), 
    'lastname' => array('title' => $this->l('Last Name'), 'width' => 80), 
    'firstname' => array('title' => $this->l('First name'), 'width' => 60), 
    'email' => array(
     'title' => $this->l('E-mail address'), 
     'width' => 120, 
     'maxlength' => 19), 
    'company' => array('title' => $this->l('Company'), 'width' => 60), 
    'age' => array(
     'title' => $this->l('Age'), 
     'width' => 30, 
     'search' => false), 
    'active' => array(
     'title' => $this->l('Enabled'), 
     'width' => 25, 
     'align' => 'center', 
     'active' => 'status', 
     'type' => 'bool', 
     'orderby' => false), 
    'newsletter' => array(
     'title' => $this->l('News.'), 
     'width' => 25, 
     'align' => 'center', 
     'type' => 'bool', 
     'callback' => 'printNewsIcon', 
     'orderby' => false), 
    'optin' => array(
     'title' => $this->l('Opt.'), 
     'width' => 25, 
     'align' => 'center', 
     'type' => 'bool', 
     'callback' => 'printOptinIcon', 
     'orderby' => false), 
    'date_add' => array(
     'title' => $this->l('Registration'), 
     'width' => 30, 
     'type' => 'date', 
     'align' => 'right'), 
    'connect' => array(
     'title' => $this->l('Connection'), 
     'width' => 60, 
     'type' => 'datetime', 
     'search' => false)); 

이상한 것은 작동하는 것 같다이다 AdminCustomers.php에 다음과 같은 수정을 시도했지만, 하나 또는 두 개의 브라우저 새로 고침 만 수행하면 SQL 실패 메시지가 표시되지 않습니다.

나를 올바른 길로 인도하려는 아이디어는 높이 평가 될 것입니다.

+0

그리고 어떤이 SQL은 실패 메시지가 무슨 말을 찾을 것입니다 실행 ..? – Ben

+0

구체적이고 막연한 실패 메시지가 없습니다. – Carvefx

답변

0

당신은 그것을 시도 할 수 있습니다 : 파일을 열 config>config.inc.php을 설정하고 진정한 define('_PS_DEBUG_SQL_', false)에 라인 AdminTab::getList()$this->_list = Db::getInstance()->ExecuteS($sql);

+0

동일한 오류가 발생하지 않았습니다. 나는 당신이 "당신이 여기에 당신의 SQL 질의를 볼 것"이라는 의미가 확실하지 않습니다. 다시 말해 주길 바래요? – Carvefx

+0

SQL requiest의 문제점을 이해하지 못하는 문제를 해결하기가 어렵습니다. 이 경우 CMS가 db에 요청하는 곳은 getList() 함수의 AdminTab.php 클래스입니다. 요청 텍스트는 $ sql 변수에 있습니다. SQL 요청 및 오류 메시지의 예제를 제공하면 문제를 더 쉽게 해결할 수 있습니다. –

0

시도 쇼 SQL 디버깅 :

// This is new code 
$this->_select .= ', (SELECT d.company FROM ' . _DB_PREFIX_ . 'address d WHERE d.id_customer = a.id_customer LIMIT 1) as company'; 

은 또한 당신이 여기에 SQL 쿼리를 볼 수 있습니다. 오류 구문 인 sql이 나타납니다. 는 코드

$ 온도 = '(FROM d.company 선택'을 수정하려고하는 것을 잊지 마십시오.. _DB_PREFIX_ '주소 D를 WHERE d.id_customer = a.id_customer LIMIT 1) 기업으로';

var_dump (Db :: getInstance() -> ExecuteS ($ sql));

마지막으로, 코드, 오류 :

관련 문제