Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

помогите с запросом, ступор


Recommended Posts

Хочу добавить в model/category  функцию вывода category_id по названию.

public function getIdCategory($category_name) {
$query="SELECT IFNULL(category_id,null) FROM " . DB_PREFIX . "category_description WHERE name = '".$category_name ."'";
$query = $this->db->query($query);
    return $query->row['category_id'];
}

 

Не работает , хотя строка формируется нормально. 

В PhpMyAdmin-e работает

 

А вот так работает

$query="SELECT category_id FROM " . DB_PREFIX . "category_description WHERE name = 'ПРОБА'";

IFNULL вставляю - не работает

Переменную вставляю - не работает.

Что за хрень? Помогите кто чем может.

зы.

В функции нерабочий только IFNULL

вызываю 

$a="ПРОБА";
$filter_category=$this->model_catalog_category->getIdCategory($a);

работает

как IFNULL поправить?

 

Змінено користувачем PeletonTver
Надіслати
Поділитися на інших сайтах


37 минут назад, PeletonTver сказал:

IFNULL вставляю - не работает

 

зачем, если не секрет?

 

37 минут назад, PeletonTver сказал:

WHERE name =

 

попробуйте LIKE 

ну и escape я бы не забывал

  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, PeletonTver сказал:

В PhpMyAdmin-e работает
IFNULL вставляю - не работает

Посмотрите в том же phpMyAdmin, как называется колонка с результатом. Подсказка: она называется IFNULL(category_id,null), а результат вы пытаетесь взять из колонки с именем category_id. Напишите IFNULL(category_id,null) AS category_id и всё заработает.

  • +1 2
Надіслати
Поділитися на інших сайтах


Ну как бы вот так:

public function getCategoryIdByName($category_name) {
	$query = $this->db->query("SELECT DISTINCT category_id FROM " . DB_PREFIX . "category_description WHERE name LIKE '%" . $this->db->escape($category_name) . "%' AND language_id = '" . (int) $this->config->get('config_language_id') . "'");

	if($query->num_rows) {
	    return $query->row['category_id'];
	}
}

 

  • +1 1
Надіслати
Поділитися на інших сайтах

37 минут назад, PeletonTver сказал:

Спасибо всем большое. А что правильней distinct или Limit 1, в данном случае ? Так, для развития..

Для общего развития - задайте себе вопрос: что будет если у вас вдруг окажутся три категории с одинаковым названием ?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.