Autor Zpráva
maks
Profil
Ahoj,

rád bych se zeptal, jak ukládat do DB novou pozici prvků, když použiju na stránce drag&drop menu. Dosud jsem používal jen PHP změnu pozice - o 1 pozici nahoru/dolu. Jde mi o to, že změn může být při D&D dost; při jednom uložení třeba všechny položky změní pozici. Jak to uložit do DB co nejšetrněji a nejrychleji?

Děkuji.
Moderátor Joker: Upravil jsem titulek, D&D se běžně používá pro Dungeons&Dragons :-)
Nox
Profil
maks:
Nechápu "nejšetrněji"...ale šlo by použít MEMORY storage engine (volí se při tvorbě tabulky), tabulka je pak uložena v paměti a práce s ní je extrémně rychlá.
Nevýhoda je ta, že při restartu serveru se všechna data smažou.... což v případě pozicování menu není nic tragického (příp. můžeš mít 2. tabulku ne-MEMORY kam budeš ukládat třeba CRONem na konci dne)
maks
Profil
Nox:
Nechápu "nejšetrněji"
myslel jsem to tak, aby to uživatele příliš nerušilo -> nejrychleji :o)

Šlo mi hlavně o to, jak postavit dotaz na UPDATE pozice - napadl mě jen cyklus, kde by měla každá položka jeden sql update, což je nesmysl (z hlediska rychlosti). Je třeba brát v úvahu třeba 200položek (3-úrovňové menu) a cyklus vyvojávající 200 update dotazů není to pravé ořechové.
Nox
Profil
maks:
Když bych to vzal extra pragmaticky, tak co tlačítko "uložit"? :)
A jinak... netuším jak máš data v tabulce, takže dotaz nevim, každopádně cykly s SQL to je dost zabiják rychlosti, takže nejlíp do jednoho
maks
Profil
Nox:
Když bych to vzal extra pragmaticky, tak co tlačítko "uložit"? :)
jasně, že tam bude tlačítko uložit, ale co se stane po něm? Nevím, jak postavit dotaz.

aždopádně cykly s SQL to je dost zabiják rychlosti, takže nejlíp do jednoho
něco takového mám v plánu, ale kdbych věděl, jak, neptám se :o)


v tabulce je pro zjednodušení jen ID, POZICE.


Dejme tomu, že na stránce pomocí D&D zpřeházím položky, že bude pořadí následující:

Původní pořadí:
ID | POZICE
1      1
2      2
3      3
4      4
5      5
6      6
7      7


Nové pořadí
ID | POZICE
1      3
2      7
3      2
4      5
5      1
6      4
7      6

Takto to zpřeházím, stisknu uložit a...

... SQL dotaz bude...

... to už nevím :o)


Díky
Nox
Profil
http://php.vrana.cz/hromadna-aktualizace-zaznamu.php
maks
Profil
Nox:
děkuji, to by mohlo být ono. Vyzkouším.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0