tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

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 ;)