Ами сега ?

3 отговора 156 прегледа
#1

Ами сега ?

Здравейте,
Оправих си предишния проблем, а сега както си му е редът излезе нов. Сега случая, е не че нещо не работи, ами се чудя как да го излъжа за да проработи.
Его я и загадката:
Имам две таблици за продукти, в едната са “базовите” модели, а в другата са модефикациите. Това, което ги свързва са каталожните номера, които са еднакви както за базовите така и модефикациите, това което различава модефикациите са пак каталожни номера, но с няколко цифри повече, е разбира се и характеристиките на самите модефикации.
Ето нещо по нагледно:
table1
id | artnom | brand | model | description|

table2
idmod | artnomer | modnom | specification1 | specificatio2 | ……

admin page
“SELECT idmod, artnom, brand, model FROM table1, table2 WHERE table1.artnom = table2.artnomer GROUP BY artnom ORDER BY idmod DESC”
към резултата на това запитване имам:
print “<form action=\”file.php\” method ……………..<input type …………. И <input type=hidden name=idmod value=$idmod>…………. – това idmod ми прецаква цялата работа всъщност.
Това се предава на друг скрипт, които има следната заявка:
“SELECT artnomer, modnom, specification1, specification2 FROM table2 WHERE idmod = $idmod”
Конкретно проблема ми е в това “WHERE idmod = $idmod”, резултата от скрипта е следния: GROUP BY показва само първия резултат от групите модефикации, чието idmod примерно е 7, след това скритото поле препращата това idmod, на скрипта, в който се нанасят промените, но понеже там има сравняване на idmod на екрана се извежда само модефикацията, чиято idmod = 7. Аз тук се нервирам махам това условие и излизат всички модефикации, но като им нанеса промени се редактира само едно от тях, защото и аз не знам вече защо.

Въпросът: как да го накарам да осъществи промените за всички idmod на съответната група artnom???

Отговор
в отговор на Mury #2

Re: Ами сега ?

“SELECT idmod, artnom, brand, model FROM table1, table2 WHERE table1.artnom = table2.artnomer GROUP BY artnom ORDER BY idmod DESC”


Според sql стандарта във списъка на колоните може да имаш само колони по които групираш плюс агрегатни функции (като sum, count). С други думи или в group by трябва да добавиш idmod, model и brand или пък имод да стане мах или мин (имод) или да разкараш GROUP by.

HTH

Отговор
в отговор на Бaй Любo #3

Re: Ами сега ?

Като разширение на стандарта в MySQL може да се използва практически всичко в GROUP BY и ORDER BY клаузите.

За ORDER BY това е изключително удобно докато в GROUP BY трябва да се използва много внимателно - резултатите монго често изглеждат странно.

Всъщност става въпрос за групиране по "невидима" колона в резултата.

salle.online.bg/sig
Отговор
в отговор на Mury #4

Тръгна :)))

Оправих този скрипт като го зарязох и направих админа по друг начин и при това се получи по-добре от първия вариант.
Причината според мен бе в idmod, защото в новите скриптове ги следих непрекъснато и стана, просто стана :))))

Отговор