Autor Zpráva
R.
Profil *
Dobry den omlouvam se ze zatezuji mozna necim tak zbytecnym tenhle uzasny server :) , chci resit jednoduchy problem a to sice razeni dat :) jde o razeni dat po kliknuti :) mam jedno tlacitko dejme tomu a pri jednom kliknuti se data seradi sestupne a pri druhem na to same tlacitko zase vzestupne :) napadaj me zpusoby jak to resit ale vsechno mi prijde zbytecne zlouhave, nekutil to nekdo a nechtel by me obohatit o svuj jednoduchy napad ? :)
s podekovanim R
Str4wberry
Profil
R.
A nestačil by JavaScript?
Joker
Profil
Třeba takhle:

budu mít GET parametr, třeba order, hodnota 0 = vzestupně, 1=sestupně

no a potom:
$order = isset("$_GET["order"]) ? intval($_GET["order"]) : 0; // místo 0 může být 1, podle toho jaké chci výchozí řazení
...
$sql = "SELECT neco FROM tabulka ORDER BY necojineho";
if($order) $sql = $sql." ASC";
else $sql = $sql." DESC";
...
a odkaz vygenerovat takhle:
if($order) $order = 0; else $order = 1;
echo('<a href="?order='.$order.'">řadit</a>');
Taps
Profil
R.
já to mám takto



if($_GET['smer']=="dolu"){
$serad="ASC";
$link="?smer=dolu";
}
elseif($_GET['smer']=="nahoru"){
$serad="DESC";
$link="?smer=nahoru";

}
else{
$serad="DESC";
$link="?smer=nahoru";
}

a pak jen index.php?smer=nahoru

$sql=mysql_query("select * from tabulka order by id $serad");
Marty110r
Profil
Zdravím Vás :-)

řešil jsem podobný problém s řazením dat a Vaše rady mi moc pomohli.
Jde mi skoro všecko co jsem potřeboval, až na jednu maličkost.

Dělám katalog aut v phprs - předělal jsem plugin knižnica, .

http://www.skoda110r.com/kniznica.php

Základní zobrazení je buď všecko=kategorie 0 nebo jednotlivě kat=1 až kat=8.
Zobrazuje se max 10 aut na stránce a potom se objevují záložky na dalších 10...

Šlo mi o to aby si čtenář mohl auta srovnat podle výrobního čísla a podle data přidání - sestupně i vzestupně.

Vytvořil jsem 4 tlačítka s funkcemi order=1 až order=4

echo('<a><strong> Seřadit podle: </strong></a>');
echo('<a>Pořadového čísla </a>');
echo('<a href="?order=1"><img src=image/down.gif border=0 title=Od_nejnižšího></a>');
echo('<a href="?order=2"><img src=image/up.gif border=0 title=Od_nejvyššího></a>');
echo('<a> Data zavedení do FK </a>');
echo('<a href="?order=3"><img src=image/down.gif border=0 title=Od_nejnovějšího></a>');
echo('<a href="?order=4"><img src=image/up.gif border=0 title=Od_nejstaršího></a>');

potom tohle:

if($_GET['order']==""){
$serad="nazov ASC";
$link="?order=1";
}
elseif($_GET['order']=="1"){
$serad="nazov ASC";
$link="?order=1";
}
elseif($_GET['order']=="2"){
$serad="nazov DESC";
$link="?order=2";
}
elseif($_GET['order']=="3"){
$serad="pridane DESC";
$link="?order=3";
}
elseif($_GET['order']=="4"){
$serad="pridane ASC";
$link="?order=4";
}

a nakonec:

jsem v místě kde bylo ORDER BY nazov LIMIT dal ORDER BY $serad LIMIT

------------------------------------


Všecko funguje skoro perfektně, až na jednu věc.


Když zvolím jakoukoliv kategorii > 0 tak mě to po změně řazení hodí zpátky na kategorii =0

Je to tím že tlačítko řazení doplní ?order=1 přímo za hlavní php soubor a ne za aktuální cestu.

npř jsem v kategorii 6 a mám řazení order=2

http://www.skoda110r.com/kniznica.php?order=2&kat=6

chci změnit na řazení order=3

pokud to napíšu ručně do prohlížeče tak to funguje

http://www.skoda110r.com/kniznica.php?order=3&kat=6

ale pokud stisknu tlačítko order=3

tak z linku vypadává číslo kategorie a jsem znovu v kategorii 0

http://www.skoda110r.com/kniznica.php?order=3

protože je nastaveno že je to kategorie výchozí.

----------------------

snažil jsem se aby se mi před odkaz ?order=X nějak dostala aktuální cesta ZA **.PHP
vypsat jí umím pomocí

echo $_SERVER['QUERY_STRING'];

ale nějak mi to nejde.

Mohl by jste mi prosím někdo poradit, protože všecko dělám metodou pokus omyl, mořím se s tím už několik dní.

Zdrojový soubor přejmenovaný na txt jsem dal k prohládnutí sem:

http://www.skoda110r.com/archiv/kniznica.txt

( Třídění podle abecedy které tam je je pozůstatek z původního pluginu, nevyužívám ho protože si neporadí s češtinou )

Moc děkuji za případné rady

Martin

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: