Oznámení
Inkrementace hodnoty v DB
před 10 lety
- Jirda
- Člen | 111
Zdravím,
jak pomoci dibifluent postavit update, kde navýším hodnotu v daném záznamu o jedna?
Třeba když počítám počet zobrazení nějaké diskuse…
Předem díky za rady.
před 10 lety
- PetrP
- Člen | 587
dibi::update('diskuse',array(
'pocet_zobrazeni%sql' => '[pocet_zobrazeni]+1'
))->where('[id]=%i',3)->execute();
EDIT: nezdá se vám že je fórum dneska strašně pomalé?
Editoval PetrP (4. 8. 2009 22:27)
před 10 lety
- paranoiq
- Člen | 388
@Jirda: mě se z některých dotazů zdá, že je DibiFluent nadužíváno a výsledná konstrukce je často složitější než obyčejný dotaz. chudák ten, kdo to pak bude číst.
zkuste porovnat:
dibi::query("UPDATE [diskuse] SET [pocet_zobrazeni] = [pocet_zobrazeni] + 1 WHERE [id] = %i", $topicId);
nebo když půjde o něco složitějšího:
$podminky = array(...);
dibi::query("UPDATE [tabulka] SET [sloupec] = [sloupec] + %i", $param, "WHERE %and", $podminky);
opravdu je k tomu třeba DibiFluent? který způsob je čitelnější?
možná jde o zjednodušený příklad, ale já zatím nenašel žádný, který by použití DibiFluent nějak významně zjednodušilo. spíš než jako syntactic sugar bych ho v některých případech, a tohle je jeden z nich, označil za syntactic poison. ale každému jeho Humpolec :]
před 10 lety
- Jirda
- Člen | 111
Díky, funguje to.
paranoiq:
Určitě na tom, co píšeš, něco bude. Já osobně jsem v dibi
začátečník a když objevuji ty různé varianty, jak pracovat s dotazy, tak
si sám někdy říkám, co použít v dané situaci, když mám po ruce
relativně nemálo nástrojů. Dřív, když jsem dělal první kroky vůbec
v php a tak, stačilo mi znát mysql_query a mysql_fetch_array de facto. Teď
se dostávám do situace, kdy mám prakticky na výběr. Sam na sobě pozoruji
chování, kdy píšu aplikaci a když se blížím ke konci začínám
pociťovat silný pocit, že způsob jaký jsme zvolil není tak čistý, jak by
mohl být či dokonce sám vidím, kdy jsem najednou uprostřed psaní změnil
styl a to třeba jen v úpravě. Myslím si, že si tímhle musí projít sám
každý a je zřejmé, že po získání nějakých zkušeností s danou
technologií se pak pokusí sám tvůrce standardizovat svůj styl.
Editoval Jirda (6. 8. 2009 21:41)
před 10 lety
- David Grudl
- Nette Core | 6806
Chtělo by to udělat dibilight bez všech těchto opiček ;)