Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL выдает не правильный результат

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

developer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветик Всем,
 
есть три таблицы:
 
Привязка дополнительных полей к продукту в зависимости от категории продукта

Код:
CREATE TABLE `category_fields` (
  `cat_extra_id` INT(11) NOT NULL AUTO_INCREMENT,
  `category_id` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `extra_fileds` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `sort_order` MEDIUMINT(3) DEFAULT '0',
  PRIMARY KEY (`cat_extra_id`),
  UNIQUE KEY `cat_extra_id` (`cat_extra_id`)
) ENGINE=MYISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

 
Таблиза с продкцией

Код:
 
CREATE TABLE `products` (
  `products_id` INT(64) NOT NULL AUTO_INCREMENT,
  `catalogue_id` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_name` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_keywords` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_text` TEXT COLLATE utf8_unicode_ci,
  `products_img` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_img_2` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_img_3` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_img_4` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_img_5` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_url` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_price` DECIMAL(15,2) DEFAULT NULL,
  `products_currency` VARCHAR(3) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_enabled` VARCHAR(1) COLLATE utf8_unicode_ci DEFAULT '1',
  `products_verified` VARCHAR(1) COLLATE utf8_unicode_ci DEFAULT '0',
  `products_uploaded_user` VARCHAR(11) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_uploaded_clients_id` VARCHAR(11) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_enable_share_u` VARCHAR(1) COLLATE utf8_unicode_ci DEFAULT '0',
  `products_language` VARCHAR(11) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_stats` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `products_enabled_by_client` VARCHAR(1) COLLATE utf8_unicode_ci DEFAULT '0',
  PRIMARY KEY (`products_id`),
  UNIQUE KEY `products_id` (`products_id`)
) ENGINE=MYISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 

 
Ну а в этой тоблице хранятьтся значения которые привязаны к продуктам и к первой таблице

Код:
 
CREATE TABLE `products_fields` (
  `products_fields_id` INT(11) NOT NULL AUTO_INCREMENT,
  `products_id` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `cat_extra_id` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `filed_value` TEXT COLLATE utf8_unicode_ci,
  PRIMARY KEY (`products_fields_id`),
  UNIQUE KEY `products_fields_id` (`products_fields_id`)
) ENGINE=MYISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 

 
Теперь пытаюсь вытащить дату из таблиц, типа:

extra_fileds: filed_value
Вес продукта: 0.1 кг
Размер: 10x20x30 см

 

Код:
 
SELECT cf.extra_fileds, pf.filed_value FROM products p INNER JOIN products_fields pf ON p.products_id=pf.products_id INNER JOIN category_fields cf ON pf.cat_extra_id = cf.category_id WHERE  p.catalogue_id=cf.category_id  AND  p.products_id='5'
 

 
Все выходит нормально но почему-то результат удваиваеться и выходит следующее на примере:

Вес продукта: 0.1 кг
Размер: 10x20x30 см
Размер: 0.1 кг
Вес продукта: 10x20x30 см

 
каким путем можно вывести правильный результат? Где ошибка?

Всего записей: 280 | Зарегистр. 14-10-2003 | Отправлено: 18:21 04-03-2014
developer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто не может помочь? Нет mysql специалистов на этом форуме?

Всего записей: 280 | Зарегистр. 14-10-2003 | Отправлено: 23:42 04-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
developer
здесь не чат, никто вам не обязан отвечать!
пример данных в базе покажите

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:50 04-03-2014
developer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
здесь не чат, никто вам не обязан отвечать!  

Я знаю что никто не должен, думал помогают каждый инфо, я тоже помогаю без проблем.
 

Цитата:
пример данных в базе покажите

конечно:
category_fields
1 | 2 | Вес продукта: | 1
2 | 2 | Размер:  | 2
 
 
products
1 | 2 | Test Product | Test Keyword | Product Text     | 5.99 | RUB | 1 | 1 |    new | 1 | 0 | 1 | 0 | 1
2 | 2 | Test Product2 | Test Keyword | Product Text     | 7.99 | RUB | 1 | 1 |    new | 1 | 0 | 1 | 0 | 1
3 | 2 | Test Product3 | Test Keyword | Product Text     | 6.99 | RUB | 1 | 1 |    new | 1 | 0 | 1 | 0 | 1
 
products_fields
1 | 1 | 2 | 0.1
2 | 1 | 2 | 10x20x30
3 | 2 | 2 | 0.4
4 | 2 | 2 | 200x25x40

Всего записей: 280 | Зарегистр. 14-10-2003 | Отправлено: 00:22 05-03-2014 | Исправлено: developer, 00:40 05-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
developer

Цитата:
конечно:  

уверены? у вас id (первый столбец) повторяются.
 
более того, зачем у вас VARCHAR на цифровые поля?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:29 05-03-2014 | Исправлено: Cheery, 00:39 05-03-2014
developer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
у вас id (первый столбец) повторяются

нет не повторяються, поошибке скопировал, исправлю сейчас.
 
Добавлено:
Проблема решена путем обхода sql проблемы.

Всего записей: 280 | Зарегистр. 14-10-2003 | Отправлено: 00:39 05-03-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
developer

Цитата:
Проблема решена путем обхода sql проблемы

избавьтесь от varchar там, где используете цифровые индексы

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:29 05-03-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySQL выдает не правильный результат


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru