Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 30.05.2015, 02:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что у вас за сервер - смесь английского с французским? Замените USING(pid) на ON, указав поля соответствующие и алиасы. Ругается на неоднозначное определение id, чего-то у вас попутано.

А вообще, разберитесь с сервером своим, выбросьте в помойку WAMP и установите Open Server, с удобной конфигурацией, с приличными возможностями. Ну что за фигня, что еще и во французском разбираться?

Последний раз редактировалось laimas, 30.05.2015 в 02:54.
Ответить с цитированием
  #52 (permalink)  
Старый 30.05.2015, 13:50
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от laimas
Ошибка потому, что объединение запроса не потому полю.
Долбоящер, там написано "left joint" - джоинтом называют козью ногу, косяк. А в SQL - join. Собственно на французском то и написали.
Ответить с цитированием
  #53 (permalink)  
Старый 30.05.2015, 14:15
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от arhat78 Посмотреть сообщение
А по поводу БД и таблиц. У меня есть таблица products с описанием товаров, и есть таблица sizes, где через size_id идёт ассоциация с id продукта. В ней получается:
id   size_id   size
1      1         19
2      1         20
3      1         21
4      2         19
5      2         20
6      2         21
7      2         22
, где size_id это id ботинка. И в карточке товара выпадающим списком выводится у ботинка id=1 размеры 19-20, у ботинка id=2 размеры 19-22. Я додумался только до такого вывода размеров......
Ну все верно, в такой черезжопной системе таблица размеров превращается в каталог товаров, а каталог товаров превращается в подчиненный список таблицы размеров.

Затем еще кусок гавнямбы: чтобы завести товар надо сделать минимум 2 записи - в списке товаров и каталоге размеров, иначе товар из списка попросту никогда не появится в результатах запросов.

Точно так же, как не появляется размер, которого попросту нет в нормальном каталоге товаров, но у ТС-а же все через жопу, а этот долбоящер laimas с удовольствием наблюдает как информационное животное мучается.
Ответить с цитированием
  #54 (permalink)  
Старый 30.05.2015, 14:22
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Знаете laimas зачем ТС придумал такую задницу? Затем что у него нет таблицы моделей. Без которой нельзя выбрать все ботинки одной модели чтобы посмотреть какие там есть размеры. Таблица sizes тем и занимается - группирует по size_id те самые модели. Но там нет их названия и чтоб завести новый ботинок той же модели, надо сделать 2 записи, а не 1 - в двух таблицах всегда.

А вы кажется хорошо знаете постулаты реляционных БД? Как звучит предикат - факт хранится в одном месте?

У ТС факт хранится в двух местах и поэтому оно никогда не будет работать нормально. Я уж не говорю о том, когда ТС захочет еще какую-то проперть завести кроме размеров - вот будет умора почитать.

В общем чтобы сгруппировать товары по общему признаку такому как модель или там коллекция, надо завести таблицу моделей

table model
id
name

заводим 1 - Ботинки Андрей, 2 - Туфли Игорь, 3 - Кроссовки Эдик.

table listing
id
model_id
size_id

заводим запись, выбираем в поле model из списка - Ботинки Андрей, а в поле size из списка - 44 - ОК
заводим запись, выбираем в поле model из списка - Ботинки Андрей, а в поле size из списка - 42 - ОК
заводим запись, выбираем в поле model из списка - Ботинки Андрей, а в поле size из списка - 41 - ОК
заводим запись, выбираем в поле model из списка - Ботинки Андрей, а в поле size из списка - 40 - ОК
заводим запись, выбираем в поле model из списка - Ботинки Андрей, а в поле size из списка - 38 - ОК

сделали 5 размеров Андрея

Теперь остается соединить три таблицы и получить полный фарш.

Последний раз редактировалось kostyanet, 30.05.2015 в 14:26.
Ответить с цитированием
  #55 (permalink)  
Старый 30.05.2015, 16:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kostyanet
там написано "left joint"
Это неверный оператор, я просто промолчал о нем, ибо нет представления о том, что с чем соединять надо, ну нельзя хрен с пальцем соединять и точка. Это главное, а синтаксические ошибки, это уже иное.

Сообщение от kostyanet
Знаете laimas зачем ТС придумал такую задницу?
Нет не знаю, я вообще представления не имею под какую бизнес модель пишется, ее скорее всего нет, и нужна ли на данный момент ему таблица моделей, или же учится на более простом, это мне не ведомо. Думаю пока рано ему до этого, так как скопированный правильный запрос к простым структурам тоже завершается фатально, а значит что-то под свое исправлено, но исправлено без всякого понятия что это.
Ответить с цитированием
  #56 (permalink)  
Старый 31.05.2015, 20:34
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от laimas
и нужна ли на данный момент ему таблица моделей
Что и требовалось рассказать. Вы 0 без знака в проектировании баз данных, синтаксиса не видите, по-французски не читаете, но беретесь учить того, чей уровень минус стопицот. Видимо по той самой причине, что минус стопицот, иначе оттянуться не получится.

Без таблицы моделей будет невозможна группировка. Чтобы ее все-таки сделать, придется завести общий признак в любой другой таблице. ТС догадался это сделать в таблице размеров и получил все через жопу. Теперь не из каталога продуктов надо выбирать, а из таблицы размеров, ибо там - весь каталог оказался, а каталог продуктов стал простым списком - тех самых моделей.

Тогда запрос

select p.id, p.name, s.size
from sizes as s
left join products as p
on s.prod_id = p.id

обогатит таблицу размеров - наименованиями. А если его закончить вот так

where s.prod_id = 33;

то получим наименование для всех размеров.

Можно поменять таблицы местами, можно поменять left на right - нихера не поменяется. Так и будет через жопу, потому что список товаров находится в таблице размеров и именно в нее добавляются наименования по id товара из таблицы наименований.

Я вам блеать с первого раза кажется обоим пытался объяснить что все сделано через жопу, наоборот. Но вы ж долдоните каждый свое распространяя невежество в и так пропащем рунете.

В принципе если других пропертей кроме размеров не будет, то можно и так оставить, но, надо четко понимать что ассортимент находится не там где подразумевается и не там где ожидается, а в другом месте - там где считается его нет. Из-за неправильного понимания проектировать дальше, писать скрипты, делать ввод и вывод - бесполезно. Будешь в трех соснах бродить пока с голоду не сдохнешь.

Последний раз редактировалось kostyanet, 31.05.2015 в 20:39.
Ответить с цитированием
  #57 (permalink)  
Старый 31.05.2015, 21:39
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Посмотрел в рунете обувные - все гавно. Лямода которая рекламируется в ящике, догадалась выдавать модельные цвета в блоке Мы рекомендуем. У остальных долбоящеров с топа гугля все еще хуже.

Прикол еще на лямоде, у них типа складская программа заведена в интерфейс. Каждый щелчок по + в корзине вызывает шквал эмоций в заголовках к серверу и обратно. Ну, типа, проверяют "на складе" - сколько осталось. Я нащелкал по-быстрому больше полсотни, небось теперь больше никому не достанется.

Последний раз редактировалось kostyanet, 31.05.2015 в 21:43.
Ответить с цитированием
  #58 (permalink)  
Старый 31.05.2015, 21:45
Аспирант
Отправить личное сообщение для arhat78 Посмотреть профиль Найти все сообщения от arhat78
 
Регистрация: 06.04.2015
Сообщений: 52

kostyanet, здесь список размеров выпадает из БД в Арт.10001, Арт.10002 http://top-top.bl.ee/index.php?view=product&id=2
Это пока всё, что успел "наваять"....

В вашими подсказками по коду дома пока не могу пробовать - завтра на рабочем нетбуке будут тренироваться.
Ответить с цитированием
  #59 (permalink)  
Старый 31.05.2015, 22:27
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Оказывается на sql тоже есть fiddle

http://sqlfiddle.com/#!9/2a49f/1

запрашивать модель по id - не эстетично, поэтому добавлено поле path, которое и будет светиться в адресной строке браузера, в ссылках.

Меняете path на соответствующий, как если бы он менялся в браузере и видите какие размеры имеются у той или иной модели.

Все просто? Все просто до невозможности если сделано нормально.
Ответить с цитированием
  #60 (permalink)  
Старый 31.05.2015, 22:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Логика приложения такова select * from model; и генерим с результата список ссылок с адресами в конце которых тот самый path.

Юзер нажимает на ссылку. Сервер получает запрос, контроллер видит что фрагмент адреса, там где может быть path - имеется. Значит загружается модель продукта - не модель ботинка, тут просто совпадение слов, - модель из сокращения MVC, то есть скрипт который готовит данные для рендера продуктовой страницы. Этот скрипт должен показать наименование и список размеров. Наименование есть в модели, значит можно тупо сделать 2 запроса,

1: select * from model where path = $escaped_quoted_path;

что дает всю инфу по модели, в том числе ее id. И тогда второй -

2. select prods.id, size.value from prods left join size on prods.size_id = size.id where prods.model_id = $res['id']

- загрузит список имеющихся размеров выбранной модели. Улавливаете? Список загружается в "формате" id продукта - размер.

Когда юзер выбрал размер и нажал кнопку Купить, в корзину валится пара id продукта и количество. То есть все как обычно, ибо по-другому и быть не должно.

После оформления юзер отправляет на сервер эти самые данные - ид продукта и количество. Какие теперь проблемы узнать что он заказал и какого размера?

Никаких. Вот так мы узнаем по id все что нужно знать:

http://sqlfiddle.com/#!9/2a49f/2

В тот же самом запросе на полный фарш меняем where на where p.id=4

Жизненный цикл завершен.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить, что есть поле селект у товара borus Общие вопросы Javascript 12 23.04.2014 22:14
Вывод выбранных данных и проверка checkbox MasterHrust Javascript под браузер 3 28.09.2011 17:44
вывод jquery cookie как вывести данные из куки klubnichkaaa AJAX и COMET 2 12.08.2011 13:45
Вывод переменных MasterHrust Javascript под браузер 4 03.08.2011 15:41
Вывод данных в Друпал 6 из MySQL, небольшая работа torquemada Работа 1 22.05.2011 17:05