Autor Zpráva
juricka
Profil *
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
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 *
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
MMMohol by niekto vysvetliť userovi felix tomasek juricka (to be continued...) správanie sa na diskusii? Ďakujem.
Joker
Profil
juricka
Když v tom kódu prostě přidáte tu WHERE podmínku do SQL dotazu, mělo by to fungovat.
juricka
Profil *
Joker
Tak proste nevim. muzu ti ukazat jak to mam jestli by jsi nevedel? Sem v tom totalne zamotany.
Joker
Profil
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 *
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&nbsp;&nbsp;&nbsp;&nbsp;";
      //začátek - vytvoř odkaz pouze pokud nejsme na začátku
       if ($od==1) echo "Začátek&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a>&nbsp;|&nbsp;";
      //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS
       if ($od<ROWS) echo "Zpět&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Zpět</a>&nbsp;|&nbsp;";
    //další - vytvoř, pouze pokud nejsme v posledních ROWS
       if ($od+ROWS>$celkem) echo "Další&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Další</a>&nbsp;|&nbsp;";
    //poslední - to je posledních (zbytek po dělení ROWS) záznamů
       if ($od>$celkem-ROWS) echo "Konec&nbsp;<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
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 *
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&nbsp;&nbsp;&nbsp;&nbsp;";
      //začátek - vytvoř odkaz pouze pokud nejsme na začátku
       if ($od==1) echo "Začátek&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=1\">Začátek</a>&nbsp;|&nbsp;";
      //zpět - vytvoř odkaz pouze pokud nejsme v prvních ROWS
       if ($od<ROWS) echo "Zpět&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Zpět</a>&nbsp;|&nbsp;";
    //další - vytvoř, pouze pokud nejsme v posledních ROWS
       if ($od+ROWS>$celkem) echo "Další&nbsp;|&nbsp;"; 
      else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Další</a>&nbsp;|&nbsp;";
    //poslední - to je posledních (zbytek po dělení ROWS) záznamů
       if ($od>$celkem-ROWS) echo "Konec&nbsp;<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?

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: