Ами сега ?
3 отговора
156 прегледа
Ами сега ?
Здравейте,
Оправих си предишния проблем, а сега както си му е редът излезе нов. Сега случая, е не че нещо не работи, ами се чудя как да го излъжа за да проработи.
Его я и загадката:
Имам две таблици за продукти, в едната са “базовите” модели, а в другата са модефикациите. Това, което ги свързва са каталожните номера, които са еднакви както за базовите така и модефикациите, това което различава модефикациите са пак каталожни номера, но с няколко цифри повече, е разбира се и характеристиките на самите модефикации.
Ето нещо по нагледно:
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???
Оправих си предишния проблем, а сега както си му е редът излезе нов. Сега случая, е не че нещо не работи, ами се чудя как да го излъжа за да проработи.
Его я и загадката:
Имам две таблици за продукти, в едната са “базовите” модели, а в другата са модефикациите. Това, което ги свързва са каталожните номера, които са еднакви както за базовите така и модефикациите, това което различава модефикациите са пак каталожни номера, но с няколко цифри повече, е разбира се и характеристиките на самите модефикации.
Ето нещо по нагледно:
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???
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
Според sql стандарта във списъка на колоните може да имаш само колони по които групираш плюс агрегатни функции (като sum, count). С други думи или в group by трябва да добавиш idmod, model и brand или пък имод да стане мах или мин (имод) или да разкараш GROUP by.
HTH
Re: Ами сега ?
Като разширение на стандарта в MySQL може да се използва практически всичко в GROUP BY и ORDER BY клаузите.
За ORDER BY това е изключително удобно докато в GROUP BY трябва да се използва много внимателно - резултатите монго често изглеждат странно.
Всъщност става въпрос за групиране по "невидима" колона в резултата.
salle.online.bg/sig
За ORDER BY това е изключително удобно докато в GROUP BY трябва да се използва много внимателно - резултатите монго често изглеждат странно.
Всъщност става въпрос за групиране по "невидима" колона в резултата.
salle.online.bg/sig
Тръгна :)))
Оправих този скрипт като го зарязох и направих админа по друг начин и при това се получи по-добре от първия вариант.
Причината според мен бе в idmod, защото в новите скриптове ги следих непрекъснато и стана, просто стана :))))
Причината според мен бе в idmod, защото в новите скриптове ги следих непрекъснато и стана, просто стана :))))