Одинаковые функции - разные результаты

221
10 января 2018, 19:33

Здравствуйте, в данный момент ломаю голову над тем что мои пользовательские функции getChildrenForCat($catId) и getProductsByCat($catId) (их вы увидите ниже после главной функции!) практично идентичны, но результаты возвращает только одна из них. И сразу оговорюсь переменная $sql верна я уже сто раз ее вписывал в phpMyAdmin и мне сто раз давались правильные результаты. Вот и парадокс.

// **Главная функция**
function indexAction($smarty)
{
    $catId = isset($_GET['id']) ? $_GET['id'] : null;
    if($catId == null) exit();
    $rsProducts = null;
    $rsChildCats = null;
    $rsCategory = getCatById($catId);
    //  если главная категория то показываем дочернии
    //  иначе показываем товар
    if($rsCategory['parent_id'] == 0){
        $rsChildCats = getChildrenForCat($catId);
    } else {
        $rsProducts = getProductsByCat($catId);
    }
    // **Функция d() для отладки** 
    d($rsProducts); // **выводит результат**
    d($rsChildCats); // **не выводит результат**
    $rsCategories = getAllMainCatsWithChildren();
    $smarty->assign('pageTitle', 'Товары категории ' . $rsCategory['name']);
    $smarty->assign('rsCategory', $rsCategory);
    $smarty->assign('rsProducts', $rsProducts);
    $smarty->assign('rsChildCats', $rsChildCats);
    $smarty->assign('rsCategories', $rsCategories);
    loadTemplate($smarty, '../views/default/header.tpl');
    loadTemplate($smarty, '../views/default/category.tpl');
    loadTemplate($smarty, '../views/default/footer.tpl');
}
// **Некоторые функции которые используются в моем коде**
/**
 *  **Получить данные категории по id**    
 *  @param integer $catId ID категории  
 *  @return array массив - строка категории
 */
function getCatById($catId)
{
    $catId = intval($catId);
    $sql = "SELECT * FROM categories WHERE id = '{$catId}'";
    $rs = mysql_query($sql);
    return mysql_fetch_assoc($rs);
}
/**
 *  **Преобразование результатов роботы функции выборки в ассоциативный массив**    
 *  @param recordset $rs набор строк - результат работы SELECT    
 *  @return array 
 */
function createSmartyRsArray($rs){
    if(!$rs) return false;
    $smartyRs = array();
    while ($row = mysql_fetch_assoc($rs)) {
        $smartyRs[] = $row;
    }
    return $smartyRs;
}
/**
 *  **Получить дочернии категории для категории $catId**     
 *  @param integer $catId ID категорий    
 *  @return array массив дочерних категорий
 */
function getChildrenForCat($catId)
{
    $catId = intval($catId);
    $sql = "SELECT * FROM categories WHERE parent_id = '{$catId}'";
    $rs = mysql_query($sql);
    return createSmartyRsArray($rs);
}
/**
 *  **Получить продукты для категории $itemId**     
 *  @param integer $itemId ID категории    
 *  @return array массив продуктов
 */
function getProductsByCat($itemId)
{
    $itemId = intval($itemId);
    $sql = "SELECT * FROM products WHERE category_id = '{$itemId}'";
    $rs = mysql_query($sql);
    return createSmartyRsArray($rs);
}
/**
 *  **Функция отладки. Останавливает роботу программы выводя значение переменной $value**    
 *  @param variant $value переменная для вывода на страницу
 */
function d($value = null, $die = 1){
    echo 'Debug: <br /><pre>';
    print_r($value);
    echo '</pre>';
    if($die) die;
}
READ ALSO
Создать Базу данных(PDO)

Создать Базу данных(PDO)

Всем приветосыПытаюсь создать Базу Данных

223
Checbox-фильтр по нескольким категориям (MySQL, PHP, Ajax)

Checbox-фильтр по нескольким категориям (MySQL, PHP, Ajax)

Существует таблица Mysql с различными устройствами, которые необходимо отсортировать по 3м категориям с помощью checkbox

275
Пересечение временных интервалов

Пересечение временных интервалов

Есть массив времени:

212
Проверка isset($_FILES[filename]) не работает

Проверка isset($_FILES[filename]) не работает

ЗдравствуйтеВ форме есть поле <input type="file" name="filename" /> При отправке формы идёт проверка

235