Autor | Zpráva | ||
---|---|---|---|
weckho Profil |
#1 · Zasláno: 12. 2. 2008, 21:32:07 · Upravil/a: weckho
Ahoj,
po 3 dnech hledání už mi nezbývá nic jiného než poprosit o radu zde. Mám hotové stránkování a potřebuji výsledky dotazu seřadit. Dotaz sestavuji dynamicky. Nejdříve je v dotazu požadavek na seřazení a poté LIMIT. Při vytažení dat z DB jsou data na první stránce seřazena správně, např. podle datumu, názvu, aj. (dle dyn. dotazu), jenže po přechodu na druhou stránku jsou na této stránce již data seřazena náhodně, a při vrácení na stránku první už nejsou seřazena ani zde.. Můžu poslat ukázku scriptu, ale nevím jestli se v tom někomu bude chtít hrabat. Pomohlo by mi spíše teoreticky, jak postupovat, pokud chci dosáhnout toho, co potřebuji, já už si s tím poradím. Je možné, že dělám chybu v architektuře dotazu, že prostě třeba takhle nejde skombinovat limit s řazením výsledků, jestli má někdo zkušenosti, popřípadě funkční řešení, budu velice rád. Děkuji za každou odpověď. |
||
Kajman_ Profil * |
#2 · Zasláno: 12. 2. 2008, 22:06:37
Předávejte si na další stránky podle čeho se má řadit.
|
||
weckho Profil |
#3 · Zasláno: 12. 2. 2008, 22:55:05
Ty jo to mě vůbec nenapadlo, děkuju moc. Teď mi došlo že budu muset předat celou tu část dynamického dotazu, která kromě toho jak seřadit také říká co z DB vybrat. Jak nejlíp bych měl ten dotaz předat? GET určitě ne.. napadá me session.. a nebo lze nějak použít u klasického odkazu POST? Díky
|
||
Alphard Profil |
#4 · Zasláno: 12. 2. 2008, 23:12:01
GET určitě ne
proč? naopak myslím, že ano, při něčem jiném bude problém s přeposíláním odkazů a tak dále samozřejmě je nutné ošetřit sql injection, ale to je vše index.php?limit=20&od_id=60&order=asc, v PHP poskládat |
||
weckho Profil |
#5 · Zasláno: 12. 2. 2008, 23:19:24 · Upravil/a: weckho
Problém je v tom, že já nepotřebuji přeposlat jen to, jak výsledek řadit, ale celou část dynamického dotazu, a ta má (podle požadavku) až 80 znaků. Data se vybírají z 5ti tabulek. Proto si myslím že použití GET je nevhodné..
|
||
Kajman_ Profil * |
#6 · Zasláno: 13. 2. 2008, 08:46:53
A co máte všechno dynamické?
Limit a offset se dají poslat jako jednoduché číslo. Pro řazení lze použít např. sadu čísel (určující pořadí sloupečku a záporné, třeba může mít funkci desc). Filtrování obsahu přes where také může používat proměnné get. |
||
Joker Profil |
#7 · Zasláno: 13. 2. 2008, 09:55:51
weckho
Problém je v tom, že já nepotřebuji přeposlat jen to, jak výsledek řadit, ale celou část dynamického dotazu Zkuste třeba na Google najít něco, co dá víc než jednu stránku výsledků, a pak přepnout na další stránku. Tak se to dělá. |
||
weckho Profil |
#8 · Zasláno: 13. 2. 2008, 13:07:30
Joker
Jj, přesně tohle jsem včera zkoušel, ale neodvodil jsem z toho, jak to použít na mém webu. Kajman_ Mám stránku s formulářem pro zadání parametru hledání, uživatel buď nevyplní nic (pak se z DB vytáhne vše) a nebo vyplní některé parametry. Podle toho kolik jich vyplní, se vytvoří dynamický dotaz na DB (podmínka WHERE), který může být, jak už jsem uvedl, až 80 znaků.. A to by v adrese, při předání přes GET, nebylo podle mě úplně ok. Kdybych němel klauzuli WHERE poskládanou dynamicky, tak způsob řazení předám přes GET, ale takhle si fakt nevím rady.. Samozřejmě, nějak bych to dohromady přes skryté prvky formuláře dal, ale myslím že musí existovat efektivní řešení. Vyhledávání podle parametrů s následným stránkováním výsledků přece není na webech zase tak neobvyklou věcí. |
||
ninja Profil |
#9 · Zasláno: 13. 2. 2008, 13:12:00
weckho: URL 80 znaku zkousne bez problemu. Otazka je co uzivatel, ale to zalezi na vasi aplikaci.
Misto GET muzete pouzit POST nebo SESSION. |
||
djlj Profil |
#10 · Zasláno: 13. 2. 2008, 13:24:04
až 80 znaků.. A to by v adrese, při předání přes GET, nebylo podle mě úplně ok.
Tak se znovu podívej na Google a spočítej si počet znaků. Vyhledávání podle parametrů s následným stránkováním výsledků přece není na webech zase tak neobvyklou věcí. Není, používá se tak, jak již bylo nastíněno výše. Můžeš se sice na další stránky dostávat tak, že tam uděláš formulář, který budeš odesílat metodou POST, ale to zase přináší problém v tom, že nebudeš moct na konkrétní stranu výsledků vyhledávání odkázat. |
||
Kajman_ Profil * |
#11 · Zasláno: 13. 2. 2008, 13:29:28
Mám stránku s formulářem pro zadání parametru hledání, uživatel buď nevyplní nic (pak se z DB vytáhne vše) a nebo vyplní některé parametry.
A právě tyhle vybrané parametry předáte přes get. Co je na tom divného? |
||
weckho Profil |
#12 · Zasláno: 13. 2. 2008, 13:39:58
Ok, mě jenom přišlo prostě divné předávat v adrese až 15 parametrů (pokud uživatel bude hledat podle všech kriterií). Ale pokud se to tak běžně dělá, dám na vaše rady.
Děkuji moc všem za pomoc. |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0