Здравствуйте, в данный момент ломаю голову над тем что мои пользовательские функции 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;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Существует таблица Mysql с различными устройствами, которые необходимо отсортировать по 3м категориям с помощью checkbox
ЗдравствуйтеВ форме есть поле <input type="file" name="filename" /> При отправке формы идёт проверка