LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Diskuze: článek PHP (39) - Zobrazujeme a stránkujeme data

to Stránkování
(link)
27.4.2006 15:57
J3C

Stránkování pěkné, ale hodilo by se připomenout, že se musí doplnit druhá část podmínky a to pro případ, že v DB bude méně než ROWS záznamů, což se hodí zejména u volitelného kroku. Jinak to zobrazí lautr nic, pokud se nemýlím :)
Linuxu zdar

Re: to Stránkování
(link)
10.7.2006 01:20
Adelka

ano suhlasim, staci nieco ako:

else{ //ak je zaznamov menej ako ROWS
echo "Brigády: 1-".$celkom;
echo " z celkom $celkom   ";
echo "Začiatok | Predchádzajúce | Nasledujúce | Koniec <BR>";
$sql=mysql_query("SELECT ......");
}

Ale este je tam jedna chyba. Totiz ak si date napr. zobrazit zaznamy co ja viem po 5 na stranku, a budete ich mat v db 20, tak ak kliknete na koniec, bude chciet zobrazit 21 zaznam, ktory nie je. preto sa to da spravit takto:

if($celkom%ROWS==0)$konecny_limit=($celkom-ROWS+1);
else $konecny_limit=($celkom-$celkom%ROWS+1);

a potom do url treba dat len od=$konecny_limit

Re: to Stránkování
(link)
10.7.2006 08:02
Aleš Hakl
Bydliště: Praha

Pokud to, co tu tvrdite, je pravda, tak u me "databaze" MySQL klesla jeste vice, nez jsem si kdy myslel, ze je mozne.

Pokud chci vysledek dotazu vracejiciho 5 radku, pricemz chci tech radku maximalne 10, je logicke, ze dostanu prave tech 5, ne? Stejne tak je logicke, ze pokud budu chtit zobrazit zaznamy od 6 dale a maximalne deset, tak nedostanu nic (a nikoli chybu, jak se snazite implikovat).

Re: to Stránkování
(link)
10.12.2006 23:23
Jee
Věk: ( ~36 let)

Jen kdyby někdo chtěl kratší zápis...

<pre>
$konecnylimit=$celkem%ROWS==0?$celkem-ROWS+1:$celkem-$celkem%ROWS+1;
</pre>

Re: to Stránkování
(link)
28.7.2007 16:56
Jindřich Kovář

Když jsem si to vyzkoušel, tak jsem zjistil, že MySQL čísluje záznamy v klauzuli LIMIT od 0, nikoliv od 1. Takže je potřeba v SELECT mít LIMIT od $od-1.

Re: to Stránkování
(link)
16.8.2006 08:40
petr3141

když tam nenapíšu tu podmínku vůbec tak to taky funguje

method=POST
(link)
30.11.2007 11:22
Marek Paľo

Veďel by mi niekto poradiť ako to urobyť cez POST? Nechcem tam mať tlačítka ale odkaz ako je to aj v článku. Teraz to mám takto:

else echo "<form action=\"{$_SERVER[PHP_SELF]}\" method=POST>\n";
echo "<input type=hidden name=celkem value=$celkem>\n";
echo "<input type=hidden name=od value=".($od+ROWS)."\>\n";
echo "<input type=hidden name=akce value=search>\n";
echo "<input type=submit value=\"Následujúce\">\n";
echo "</form>\n";

funguje mi to, ale cez odkazy by to bolo krajšie

ORDER BY
(link)
28.5.2008 20:32
Dan Pelíšek
Věk: ( ~34 let)

Dobrý den, udělal sem si tabulku a chtěl sem si tam udělat i možnost řazení podle různých sloupců. Řazení sloupců s VARCHAR bylo bez problému, ale při pokusu ředit podle TINYINT mi to napsalo chybu: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...seznam_knih.php on line 46.
Lze řadit podle TINYINT hodnot? Jestli ano, kde můžu mít chybu, je to nasáno následovně: $radky=mysql_query("SELECT nazev, autor, precteno FROM knihy ORDER BY precteno"." LIMIT ".($od-1).", ".$zobrazit_radku);

Česká diakritika
(link)
28.5.2008 23:25
Dan Pelíšek
Věk: ( ~34 let)

Ještě jsem se chtěl zeptat jak se dá vyhledávát v databázy slova s českou diakritikou, například písmeno ě. Zkoušel jsem:
SELECT * FROM knihy WHERE nazev LIKE '%ě%' ...
a SELECT * FROM knihy WHERE nazev LIKE CONVERT( _utf8 '%ě%'USING latin1 )COLLATE latin1_general_ci
ale ani jedno nefungovalo (i když jsem změnil kódování z latin1_general_ci na utf8_czech_ci)

Nevíte jak se to jdá udělat?

@while ($zaznam=MySQL_Fetch_Array($vysledek)) echo $zaznam["obec"]." ".$zaznam["psc"]."<BR>\n";
(link)
17.2.2010 15:44
Oldřich Válek
Věk: ( ~29 let)

Chci se zeptat, k čemu je tam ten zavináč? Chápu to tak, aby se celý kód opakoval jenomže když ho tam mam, tak to hází chybu: " Parse error: syntax error, unexpected T_WHILE in /home/free/ic.cz/t/test-2/root/www/str_1_b.php on line 50 " když to dám pryč, tak mě nefunguje jen to jak už bylo popsáno výše že se to snaží na konci vypsat př 11 z 10 záznamů... jenom mě ty jejich návrhy nějak nefungovali...

stránkování
(link)
9.3.2011 10:15
Tomáš Hofer
Věk: ( ~44 let) , Bydliště: okres Tábor

Dobrý den.

Chtěl jsem vyzkoušet stránkování, jak je popsáno v tomto díle a použil jsem kopii skriptu. Při zobrazení první stránky výsledků je vše v pořádku, ale po kliknutí na "následující" se mi objeví hláška MySQL, že tam mám chybu v syntaxi:

<code> You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND Obrazy.Model= ORDER BY Obrazy.Model, Obrazy.naz_mod, Mach, Uhel LIMIT 2, 2' at line 10</code>

Vám to všem funguje? Nesetkali jste se někdo s něčím podobným? Můj skript je téměř totožný s uvedeným výše s tím rozdílem, že si příkaz SELECT skládám dynamicky...

<code>
if (!isset($_GET["celkem"])) //pokud nevíme, kolik bude záznamů tak to zjistíme...
{
$vysledek3 = mysql_query($sql,$spojeni) or die("Nelze vykonat definiční dotaz: " . mysql_error());
// $zaznam = mysql_fetch_array($vysledek3);
$celkem = mysql_num_rows($vysledek3);
echo "<h2>Vyhledávání v databázi obrazů proudových polí podle Vámi zadaných kritérií přineslo tyto výsledky:</h2><p>(Celkem: ".$celkem.")</p>";
}
else
{
echo "<h2>Vyhledávání v databázi obrazů proudových polí podle Vámi zadaných kritérií přineslo tyto výsledky:</h2><p>(Celkem: ".$celkem.")</p>";
}
if ($celkem>ROWS)
{
if (!isset($_GET["od"])) {$od=1;} else {$od=$_GET["od"];}
$sql.=" LIMIT ".($od-1).", ".ROWS;
$vysledek3=mysql_query($sql,$spojeni) or die("Nelze vykonat definiční dotaz: " . mysql_error());
echo "Záznamy: ".$od."-";
echo (($od+ROWS-1)<=$celkem)?($od+ROWS-1):$celkem;
echo " z $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 "Předchozí | ";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od-ROWS)."\">Předchozí</a> | ";
//další - vytvoř, pouze pokud nejsme v posledních ROWS
if ($od+ROWS>$celkem) echo "Následující | ";
else echo "<a href=\"".$_SERVER["PHP_SELF"]."?celkem=$celkem&od=".($od+ROWS)."\">Následující</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>";
}
</code>

Re: stránkování
(link)
10.3.2011 06:29
Tomáš Hofer
Věk: ( ~44 let) , Bydliště: okres Tábor

Tak už jsem na to přišel. Při znovunačtení stránky se ztratí hodnoty zadané z formulářů uložené v $_POST. Tomu se dá zabránit použitím superglobal:

session_start();
if (empty($_POST)) $_POST = $_SESSION['page_post_data'];
else $_SESSION['page_post_data'] = $_POST;

DISKUZE

to Stránkování 27.4.2006 15:57 J3C
|- Re: to Stránkování 10.7.2006 01:20 Adelka
| |- Re: to Stránkování 10.7.2006 08:02 Aleš Hakl
| |- Re: to Stránkování 10.12.2006 23:23 Jee
| L Re: to Stránkování 28.7.2007 16:56 Jindřich Kovář
L Re: to Stránkování 16.8.2006 08:40 petr3141
method=POST 30.11.2007 11:22 Marek Paľo
ORDER BY 28.5.2008 20:32 Dan Pelíšek
Česká diakritika 28.5.2008 23:25 Dan Pelíšek
@while ($zaznam=MySQL_Fetch_Array($vysledek)) echo $zaznam[&quot;obec&quot;].&quot; &quot;.$zaznam[&quot;psc&quot;].&quot;&lt;BR&gt;\n&quot;; 17.2.2010 15:44 Oldřich Válek
stránkování 9.3.2011 10:15 Tomáš Hofer
  L Re: stránkování 10.3.2011 06:29 Tomáš Hofer




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze