Autor | Zpráva | ||
---|---|---|---|
Petr Ká Profil |
Ahoj,
potřeboval bych poradit jak A) řazení produktů zvlášt pro kategorii a daného uživatele B) řazení kategorií zvlášt pro uzivatele Tabulka kategorií - categories (zjednodušeně): category_id, name, user_id Tabulka produktů - products (zjednodušeně): product_id, category_id, user_id, name Jde mi o posouvání záznamů nahoru a dolů, prepocitani radiciho sloupce poradi pri vytvoreni/smazani produktu/kategorie Nasel jsem spousty reseni, nicmene pořád v tom tápám |
||
nemeja Profil |
udělal bych to jednoduše
a) SELECT * FROM products WHERE user_id=iduzivatele AND product_id=idproduktu ORDER BY product_id ASC b) SELECT * FROM categories WHERE user_id=iduzivatele ORDER BY category_id ASC |
||
Petr Ká Profil |
#3 · Zasláno: 27. 8. 2013, 13:08:39
nemeja:
Nemyslím výpis, ale řazení/změna pořadí atp. |
||
Tori Profil |
Aby každý uživatel mohl mít jiné pořadí kategorií a produktů?
Asi další tabulka: id_kategorie, id_uživatele, pořadí. A primární klíč buď přes první dva, nebo přes všechny tři sloupce, teď nevím. Totéž pro produkty. |
||
Kajman Profil |
#5 · Zasláno: 27. 8. 2013, 19:15:23
Petr Ká:
„posouvání záznamů nahoru a dolů“ UPDATE `products` p1 JOIN `products` p2 ON p2.poradi = p1.poradi - 1 # + pro smer dolu AND p2.user_id = p1.user_id AND p2.category_id = p1.category_id SET p1.poradi = p2.poradi, p2.poradi = p1.poradi WHERE p1.user_id = 42 AND p1.category_id = 8 AND p1.product_id = 3 „prepocitani radiciho sloupce“ SET @radek=0; UPDATE `products` SET poradi = @radek := @radek + 1 WHERE user_id = 42 AND category_id = 8 ORDER BY poradi, product_id |
||
Časová prodleva: 11 let
|
0