Question

I am trying to use all columns for each row from one table (party), and some columns from another (customer).

Ok, here is my code

public function getParty($data = array()) {

    $sql = "SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS cutomerIP
    FROM `" . DB_PREFIX . "party` 
    JOIN `" . DB_PREFIX . "cutomer` 
    ON party.cutomer_id = customer.customer_id
    WHERE status=3";

    $sort_data = array(


        'date_added',
        'order_id',
        'customer_id',
        'customerFN',
        'customerLN',
        'customerEMAIL',
        'customerIP',
        'description',
        'status',
        'amount'


    );

    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
        $sql .= " ORDER BY " . $data['sort'];   
    } else {
        $sql .= " ORDER BY date_added"; 
    }

    if (isset($data['order']) && ($data['order'] == 'DESC')) {
        $sql .= " DESC";
    } else {
        $sql .= " ASC";
    }

    if (isset($data['start']) || isset($data['limit'])) {
        if ($data['start'] < 0) {
            $data['start'] = 0;
        }           

        if ($data['limit'] < 1) {
            $data['limit'] = 20;
        }   

        $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    }

    $query = $this->db->query($sql);

    return $query->rows;
}

And here is the error

Notice: Error: Table 'XXX.cutomer' doesn't exist
Error No: 1146
SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS cutomerIP FROM `party` JOIN `cutomer` ON party.cutomer_id = customer.customer_id WHERE status=3 ORDER BY date_added ASC LIMIT 0,10 in /srv/www/htdocs/XXX/system/database/mysql.php on line 49

Maybe I am wrong somewhere, but do not see it

Greetings Petar Stoyanov

Was it helpful?

Solution

JOIN `" . DB_PREFIX . "cutomer` 

Should be

JOIN `" . DB_PREFIX . "customer` 

?

Also...

ON party.cutomer_id = customer.customer_id

Should be

ON party.customer_id = customer.customer_id

?

I would search for all instances of cutomer and replace them with customer.

OTHER TIPS

I think it should be

ON party.customer_id = customer.customer_id

instead of

ON party.cutomer_id = customer.customer_id

Please change from

    JOIN `" . DB_PREFIX . "cutomer` 

To

    JOIN `" . DB_PREFIX . "customer` 

Ex:

    FROM `" . DB_PREFIX . "party` 
    JOIN `" . DB_PREFIX . "customer` 
    ON party.cutomer_id = customer.customer_id
    WHERE status=3";

Change your SQL stmt to this:

$sql = "SELECT party.* , customer.customer_id AS customerID, customer.firstname AS customerFN, customer.lastname AS customerLN, customer.email AS customerEMAIL, customer.ip AS customerIP
FROM `" . DB_PREFIX . "party` 
JOIN `" . DB_PREFIX . "customer` 
ON party.customer_id = customer.customer_id
WHERE status=3";
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top