При отсутствии данных в одной из нескольких таблиц fetchAll() возвращает 0

312
08 мая 2017, 03:04

Есть функция:

public static function getProductByName($link) {
    $db = Db::getConnection();
    $sql = 'SELECT p.*, 
            cat.name AS category_name, 
            cat.link AS category_link, 
            prop.title AS property_title,
            prop.descript AS property_descr,
            pr_prop.value AS property_value
            FROM products AS p
            JOIN category AS cat ON cat.id = p.category_id
            JOIN product_prop AS pr_prop ON pr_prop.product_id = p.id
            JOIN properties AS prop ON prop.id = pr_prop.property_id
            WHERE p.link = :link';
    $result = $db->prepare($sql);
    $result->bindParam(':link', $link, PDO::PARAM_INT);
    $result->setFetchMode(PDO::FETCH_ASSOC);
    $result->execute();
    $res = $result->fetchAll();
    $item = $res[0];
    foreach($res as $p){
        $item['properties'][] = [
            'title' => $p['property_title'],
            'value' => $p['property_value'],
            'descr' => $p['property_descr']
        ];
    }
    unset($item['property_title']);
    unset($item['property_value']);
    unset($item['property_descr']);
    return $item;
}

Строка JOIN product_prop AS pr_prop ON pr_prop.product_id = p.id выбирает свойства товара, т.е. таблица product_prop имеет столбцы id, product_id, property_id, value. Проблема в том, что если в таблице product_prop нет ни одной строки с pr_prop.product_id = p.id, дамп $res = $result->fetchAll(); возвращает array(0) { } Вопрос: как сделать, чтобы при отсутствии данных в таблице product_prop в переменную $res шли остальные данные? Заранее спасибо!

READ ALSO
PHP поиск элемента в двумерном массиве

PHP поиск элемента в двумерном массиве

Есть переменная $a со значением 5 или 3Или же есть переменная $b с каким-то значением

470
Удаленная авторизация на сайте PHP CURL

Удаленная авторизация на сайте PHP CURL

Добрый вечерНе получается выполнить удаленный логин на сайт one-team

423
Как парсить информацию с другого сайта, заполняя там поля?

Как парсить информацию с другого сайта, заполняя там поля?

Есть сайт университета и на нем есть расписание пар(http://bseuby/schedule/), так вот хотелось бы парсить это расписание себе на сайт, а там просто для...

356
Using hunspell program in c++ project [требует правки]

Using hunspell program in c++ project [требует правки]

My goal is to write a c++ project, that will be able to use hunspell functionsI'm not that good of a programmer yet, but I am trying

275