Как получить связанный элемент записи из другой таблицы - PullRequest
0 голосов
/ 27 апреля 2020

Во-первых, я понятия не имею о Codeigniter, хотя я в порядке, 1013 * с общим PHP / MYSQL

Я пытаюсь получить содержимое дополнительного поля [unlock_code] из связанной записи. У меня есть таблица продаж и таблица продуктов

Вот ошибка, которую я получаю, когда пытаюсь это сделать ....

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: unlock_code
Filename: controllers/Paypal.php

 // Load libraries
    $this->load->library('AppSettings');
    //  Load models
    $this->load->model('m_customers');
    $this->load->model('m_products');

    // Get customer and product data
    $customer  = $this->m_customers->by_cid($sale['cid']);
    $product  = $this->m_products->get_product($sale['pid']);

    $configs = array(
        'protocol'  => $this->appsettings->get('email_method'),
        'smtp_host' => $this->appsettings->get('smtp_host'),
        'smtp_user' => $this->appsettings->get('smtp_username'),
        'smtp_pass' => $this->appsettings->get('smtp_password'),
        'smtp_port' => $this->appsettings->get('smtp_port'),
        'smtp_crypto' => $this->appsettings->get('smtp_crypto'),
    );



    $this->load->library("email", $configs);

    $this->email->set_newline("\r\n");
    $this->email->to($customer['cust_email']);
    $this->email->from(
        $this->appsettings->get('support_email'), 
        $this->appsettings->get('support_contact_person')
    );

    $search = array(
        '%CUSTOMER NAME%',
        '%CUSTOMER EMAIL%',
        '%PRODUCT NAME%',
        '%PRODUCT PRICE%',
        '%DOWNLOAD LINK%',
        '%DOWNLOAD EXPIRY%',
        '%UNLOCK CODE%',

    );

    $replace = array(
        $customer['cust_firstname'].' '.$customer['cust_lastname'],
        $customer['cust_email'],
        $product['name'],
        $product['price'],
        site_url('download/'.$sale['download_code']),
        $product['expiry'],
        $product['unlock_code'],
    );

Любая помощь приветствуется.

1 Ответ

1 голос
/ 28 апреля 2020

Я понял это.

По какой-то причине запрос не получал поле кода разблокировки из базы данных продуктов. Так что я изменил его с ...

function get_product($pid) {
    $res = $this->db->get_where($this->table, array('pid' => $pid), 1);
    if ($res->num_rows() > 0) {
        return $res->first_row('array');
    }
    return false;
}

На

function get_product($pid) {
    $res = $this->db->select('*')->get_where($this->table, array('pid' => $pid), 1);
    if ($res->num_rows() > 0) {
        return $res->first_row('array');
    }
    return false;
}

Вот и все.

Спасибо за предложения помощи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...