Autor | Zpráva | ||
---|---|---|---|
juricka Profil * |
#1 · Zasláno: 14. 1. 2009, 11:16:57
Ahoj,
Lamu si hlavu jak udelat strankovani, ktere mi bude fungovat i kdyz mam vypis z databaze rozdelen podle kategorie, to znamena ze mam napr. kategorie_1, kategorie_2, kategorie_3 v kazde mam x zaznamu a ty bych chtel strankovat. Umym udelat strankovani, kdyz vypisu vsechny polozky z databaze ale vubec netusim jak udelat aby mi to strankovalo kdyz budu vypisovat pouze ty kategorie. Nema s tim nekdo zkusenosti, pripadne nejaky navod jak to udelat, tady jsem nic takoveho nenasel. Diky |
||
Joker Profil |
#2 · Zasláno: 14. 1. 2009, 11:19:35
juricka
Bude to úplně stejné. Stránkování se dělá pomocí LIMIT, výpis jedné kategorie je pomocí WHERE. Pokud to takhle není, tak jsem asi nepochopil dotaz :) |
||
juricka Profil * |
#3 · Zasláno: 14. 1. 2009, 11:29:30
Takto zjistuji jake je stlacena kategorie:
$query = "select * from download"; if(isset($_GET['kategorie'])){$query.=" where d_kategorie='$_GET[kategorie]'";} $query=mysql_query($query, $link) or die("SQL nešlo provézt"); Strankovani: <?php define ("ROWS", 10); $vysledek_down = mysql_query("select count(*) as pocet from download"); list($celkem) = mysql_fetch_array($vysledek_down); { if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"]; $vysledek_down=mysql_query("select * from download limit ".($od-1).", ".ROWS); } ?> Ale nevim jak tyto dva scripty propojit nebo jak udelat aby strankovani vedelo ze mam vybranou treba kategorii_1? |
||
tiso Profil |
#4 · Zasláno: 14. 1. 2009, 11:35:47
MMMohol by niekto vysvetliť userovi felix tomasek juricka (to be continued...) správanie sa na diskusii? Ďakujem.
|
||
Joker Profil |
#5 · Zasláno: 14. 1. 2009, 11:36:53
juricka
Když v tom kódu prostě přidáte tu WHERE podmínku do SQL dotazu, mělo by to fungovat. |
||
juricka Profil * |
#6 · Zasláno: 14. 1. 2009, 12:45:30
Joker
Tak proste nevim. muzu ti ukazat jak to mam jestli by jsi nevedel? Sem v tom totalne zamotany. |
||
Joker Profil |
#7 · Zasláno: 14. 1. 2009, 13:16:47
Tahle úprava toho skriptu výše:
$vysledek_down = mysql_query("select count(*) as pocet from download WHERE d_kategorie=neco"); a $vysledek_down=mysql_query("select * from download WHERE d_kategorie=neco limit ".($od-1).", ".ROWS); nefunguje? |
||
juricka Profil * |
#8 · Zasláno: 14. 1. 2009, 13:53:07
Joker
Zkousel sem to predelat takto $query = "select * from download"; if(isset($_GET['kategorie'])){$query.=" where d_kategorie='$_GET[kategorie]'";} $query=mysql_query($query, $link) or die("SQL nešlo provézt"); define ("ROWS", 5); $query = mysql_query("select count(*) as pocet from download WHERE d_kategorie='$_GET[kategorie]'"); - radek60 list($celkem) = mysql_fetch_array($query); { if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"]; $query=mysql_query("select * from download where d_kategorie='$_GET[kategorie]' limit ".($od-1).", ".ROWS); } echo "Počet položek: ".$od."-"; echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem; echo " z celkem $celkem "; //začátek - vytvoř odkaz pouze pokud nejsme na začátku if ($od==1) echo "Začátek | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a> | "; //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS if ($od<ROWS) echo "Zpět | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Zpět</a> | "; //další - vytvoř, pouze pokud nejsme v posledních ROWS if ($od+ROWS>$celkem) echo "Další | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Další</a> | "; //poslední - to je posledních (zbytek po dělení ROWS) záznamů if ($od>$celkem-ROWS) echo "Konec <BR>"; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($celkem-$celkem%ROWS+1)."\">Konec</a><BR>"; echo "<a href='download.php?kategorie=upgrade' class='odkaz_vyber'>Upgrade</a> <a href='download.php?kategorie=navod' class='odkaz_vyber'>Návod</a> <a href='download.php?kategorie=jine' class='odkaz_vyber'>Jiné</a> <a href='download.php' class='odkaz_vyber'>Všechny</a>"; echo "<table class='tabulka_download'>"; $sloupcu = 1; $i = 0; while ($zaznam=MySQL_Fetch_Array($query)) { Ted mi jde akorat trideni podle odkazu, ale kdyz dam vyber vse tak to hodi chybu: Notice: Undefined index: kategorie in C:\dev\www\888\download.php on line 60 Notice: Undefined index: kategorie in C:\dev\www\888\download.php on line 64 a strankovani stejne nejde |
||
Joker Profil |
#9 · Zasláno: 14. 1. 2009, 14:03:27
juricka
Ty první tři řádky jsou tam na co? Ta hláška je jen poznámka (notice), že není definované $_GET["kategorie"]. Dá se toho zbavit kontrolováním přes isset (jako je to v tom úplně prvním dotazu) Jinak by to ale chodit mělo. Akorát připomínám, že tak jak to je napsané, tak ty odkazy na stránkování neberou v úvahu existenci kategorií. Asi by v případě, že je vybraná nějaká kategorie měla i v odkazu ta kategorie být. |
||
juricka Profil * |
#10 · Zasláno: 14. 1. 2009, 14:09:03
Predeláno:
define ("ROWS", 5); $query = ("select count(*) as pocet from download"); if(isset($_GET['kategorie'])){$query.=" where d_kategorie='$_GET[kategorie]'";} $query=mysql_query($query, $link) or die("SQL nešlo provézt"); list($celkem) = mysql_fetch_array($query); { if (!isset($_GET["od"])) $od=1; else $od=$_GET["od"]; $vysledek = ("select * from download limit ".($od-1).", ".ROWS); if(isset($_GET['kategorie'])){$vysledek.=" where d_kategorie='$_GET[kategorie]'";} $vysledek=mysql_query($vysledek, $link) or die("SQL nešlo provézt"); } echo "Počet položek: ".$od."-"; echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem; echo " z celkem $celkem "; //začátek - vytvoř odkaz pouze pokud nejsme na začátku if ($od==1) echo "Začátek | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a> | "; //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS if ($od<ROWS) echo "Zpět | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Zpět</a> | "; //další - vytvoř, pouze pokud nejsme v posledních ROWS if ($od+ROWS>$celkem) echo "Další | "; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Další</a> | "; //poslední - to je posledních (zbytek po dělení ROWS) záznamů if ($od>$celkem-ROWS) echo "Konec <BR>"; else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($celkem-$celkem%ROWS+1)."\">Konec</a><BR>"; echo "<a href='download.php?kategorie=upgrade' class='odkaz_vyber'>Upgrade</a> <a href='download.php?kategorie=navod' class='odkaz_vyber'>Návod</a> <a href='download.php?kategorie=jine' class='odkaz_vyber'>Jiné</a> <a href='download.php' class='odkaz_vyber'>Všechny</a>"; echo "<table class='tabulka_download'>"; $sloupcu = 1; $i = 0; while ($zaznam=MySQL_Fetch_Array($vysledek)) { Ted to mam bez chyby kdyz strankuju vsechny tak to bezi ale jakmile kliknu a odkaz kde mam kategorie, tak mi to napise SQL nešlo provézt cili nekde chyba zrejme v techto radcich ze? $vysledek = ("select * from download limit ".($od-1).", ".ROWS); if(isset($_GET['kategorie'])){$vysledek.=" where d_kategorie='$_GET[kategorie]'";} $vysledek=mysql_query($vysledek, $link) or die("SQL nešlo provézt"); A s tema odkazama ze je tam nemam sem te asi moc nepochopil a nebo je to ono co jsem psal? |
||
Časová prodleva: 14 let
|
0