| 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: 17 let
|
|||
0