Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok NapísalOffline : 29.07.2014 1:43

Zdravím vás. :)
Potreboval by som pomoc so stránkovaním. V PHP som nový, takže sa stále len učím.
Posielam sem celý php kód s výpisom z DB. Je tam začaté stránkovanie, no prišiel som k bodu, kedy neviem, prečo mi to blbne.
Kód:
            $con=mysqli_connect("localhost","****","****","****");
            
            if (mysqli_connect_errno()) {
              echo "Pripojenie do MySQL zlyhalo: " . mysqli_connect_error();
            }

            $result = mysqli_query($con,"SELECT * FROM Spravy");

            while($row = mysqli_fetch_array($result)) {
              echo "<center><b><font style=\"color: #898989; font-size: 20px;\">" . $row['nazov'] . "</font></b></center><br>";
              echo "" . $row['popis'] . "<br>";
              echo "<span title=\"Celý článok\" class=\"expand\" onClick=\"return ExpandToggle('topic".$row['id']."')\"><b>Celý článok</b></span><div id=\"topic".$row['id']."\" class=\"expandedblock\" style=\"display:none\">" . $row['clanok'] . "</div>";
              echo "<br><br>";
            }
            

            //Začiatok stránkovania
            $max_clankov = 5;
            $stranka = $_GET["aktualna_stranka"];
            if(!is_numeric($stranka))
            {
               $stranka = 1;
            }
            $pocet = mysql_result(mysql_query("SELECT COUNT (*) FROM Spravy WHERE zmazane='0';"),0);
            $pocet_stranok = $pocet/$max_clankov;
            $pocet_stranok = ceil($pocet_stranok);
            echo $pocet_stranok;
            
            mysqli_close($con);
         ?>

Keď pre kontrolu vypíšem $pocet_stranok, tak mi tam stále vypisuje nulu. Malo by mi to tam vyhodiť 5ku, pretože v DB mám 5 článkov. Prosím vás teda o pomoc. :)


Offline

Správca fóra
Správca fóra
Stránkovanie, pomoc

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 29.07.2014 8:46

2xxx píše:
Keď pre kontrolu vypíšem $pocet_stranok, tak mi tam stále vypisuje nulu. Malo by mi to tam vyhodiť 5ku, pretože v DB mám 5 článkov.

Tak sa pozri, čo s tou premennou robíš na predchádzajúcich dvoch riadkoch, pred tým výpisom.
Ten select nemôže fungovať, pretože medzi COUNT a (*) máš medzeru = vracia null a nula deleno čokoľvek jeeeeee...päť?

Je síce chválihodné, že vymýšľaš koleso (aj keď neviem prečo tam kombinuješ mysql_* a mysqli_*), ale pre tvoje dobro - skús sa radšej inšpirovať fungujúcim kódom, pretože to ako to máš teraz navrhnuté nemôže správne fungovať.
Najprv vypisuješ všetky záznamy a až potom riešiš stránkovanie - v skutočnosti to má byť presne naopak, pretože pri výpise musíš SELECT obmedziť podľa stránky na ktorej sa nachádzaš - pochopíš, keď si pozrieš nejaký funkčný príklad:
uzitocne-a-casto-pouzivane-skripty-vt45403.html#p460968
https://www.google.sk/?gws_rd=ssl#q=php ... e&safe=off
...







_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 29.07.2014 12:07

Hej, to máš pravdu. Tým som si nebol istý, tak som tam skúsil dať medzeru, ale či tam dám medzeru alebo nie, vždy my vráti výsledok 0. Určite sa pozriem na to, čo si mi poslal, ďakujem. :) Ale chcel by som sa pokúsiť tak či tak odstrániť chybu.


Offline

Správca fóra
Správca fóra
Stránkovanie, pomoc

Registrovaný: 08.08.09
Príspevky: 12449
Témy: 39
Príspevok NapísalOffline : 29.07.2014 12:24

Skús si ten SELECT spustiť priamo v databáze, či ti vráti to, čo potrebuješ. Ak to bude fungovať normálne, skús ten riadok rozdeliť na dva:
Kód:
$sql = mysql_query("SELECT COUNT(*) FROM Spravy WHERE zmazane = '0'");
$pocet = mysql_result($sql, 0);
echo ($pocet == 5) ? 'OK' : 'Chyba: ' . $pocet; // debug







_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 29.07.2014 12:54

Priamo v DB mi to vyhodí pekne 5. Skúsil som to dať aj na dva riadky s tým, čo si mi teraz nadiktoval. To mi vypíše akurát tak Chyba0


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Stránkovanie, pomoc

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.07.2014 13:18

Ake strankovanie tam chces mat? lebo ty najprv vyplujes vsetky clanky a potom sa snazis vypisat nejaky pocet stranok, ale k comu ti to je, ked hned na zaciatku scriptu ti to vypluje vsetko co mas v Spravy? Skus mrknut https://www.google.sk/search?q=pagination+php+example a prezri si niektore z prikladov ako asi funguje strankovanie a podla toho sa skus inspirovat ak to chces robit vlastnym sposobom, ale pochopis trochu ako to strankovanie funguje. Lebo v tom prvom selecte kde ti vypluje vsetky clanky, ja by som to spravil nejak takto:


Kód:
//toto by si riesil cez nejake podmienky a cislo strany by sa tahalo z parametru v url adrese
$start = '0'; // prva strana
$start = '5'; // druha strana

$limit = '5'; //tych tvojich 5 clankov na stranu

SELECT * FROM Spravy ORDER BY id DESC LIMIT $start, $limit


atd..., aspon ja by som na to tak isiel, resp. takym nejakym sposobom som si strankovanie spravil ja, dalej by si si osetril posuvanie sa po jednotlivych strankach ktore by si zistil pomocou count ze kolko ich tam vobec mas a podla toho by som teda vypisoval clanky....

// Spojený príspevok Uto 29.07.14 13:22

Popripade mrkni na kod od stenleyho uzitocne-a-casto-pouzivane-skripty-vt45403.html#p460968







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 29.07.2014 14:06

Hej v prvom selecte viem, že nemám ešte limit. To si tam dám ľahko kedykoľvek. Môj postup bol následovný: Vytvorím si kde sa mi budú zobrazovať jednotlivé články, teda stránky pomocou get. Potom tam mám podmienku na to, keby tam dakto zadával manuálne nejaký string, aby ho to proste šmarilo na prvú stránku. Potom pomocou SELECT chcem zistiť, koľko je všetkých článkov v databáze. Pomocou toho si vyrátam, koľko stránok bude. Potom by som si dal obmedzenie v prvom SELECT a nakoniec by som spravil odkazy na konkrétne stránky. Lenže ten druhý SELECT mi tu v kóde nevráti 5 a priamo v db áno, tak ja neviem čo s tým je. :D


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Stránkovanie, pomoc

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.07.2014 14:14

Skus to takto:

Kód:
$query = "SELECT COUNT (*) as num FROM Spravy WHERE zmazane='0'";
$result = mysql_fetch_array(mysql_query($query));
$pocet = $result[num];

$pocet_stranok = $pocet/$max_clankov;
$pocet_stranok = ceil($pocet_stranok);
echo $pocet_stranok;







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Správca fóra
Správca fóra
Stránkovanie, pomoc

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.07.2014 14:30

Skor bude problem v tom, ze miesas mysqli a mysql funkcie







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 29.07.2014 16:56

Skúsil som to aj podľa JanoF, no robilo to presne to isté. Namiesto SELECT som skúsil použiť funkciu mysql_num_rows(); no tiež mi to vrátilo nulu.


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Stránkovanie, pomoc

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.07.2014 17:25

No skus to tak ako pise stenley, to som si nevsimol, ale ty tam miesas mysqli a mysql funkcie, cize si vyber jedno, vhodnejsie bude asi mysqli kedze mysql uz bude v novsich verziach zrusena aspon sa mi nieco take mari a skus to tak, cize to najprv prerob a bude ti to asi urcite fungovat.

Takto nejako:

Kód:
$result = mysqli_query($con,"SELECT COUNT(*) FROM Spravy WHERE zmazane = '0'");
$pocet = mysqli_fetch_array($result,MYSQLI_NUM);
$pocet_stranok = $pocet[0]/$max_clankov;







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 29.07.2014 17:41

Presne takto som to skúšal už aj pred tým, než som sem písal. :D Tá hodnota je stále rovnaká bohužiaľ. :(


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Stránkovanie, pomoc

Registrovaný: 01.05.05
Príspevky: 13343
Témy: 1494
Bydlisko: Bratislava
Príspevok NapísalOffline : 29.07.2014 18:33

mne to pri 6 clankoch pricom jeden mam oznaceny ako zmazany, cize v riadku toho clanku nemam 0 ale dal som tam 1 mi ten script vypluje 1, ziadna 0

// Spojený príspevok Uto 29.07.14 18:40

Kód:
<?php
            $con=mysqli_connect("localhost","root","","test");
           
            if (mysqli_connect_errno()) {
              echo "Pripojenie do MySQL zlyhalo: " . mysqli_connect_error();
            }

            $result = mysqli_query($con,"SELECT * FROM Spravy");

            while($row = mysqli_fetch_array($result)) {
              echo "<center><b><font style=\"color: #898989; font-size: 20px;\">" . $row['nazov'] . "</font></b></center><br>";
              echo "" . $row['popis'] . "<br>";
              echo "<span title=\"Celý článok\" class=\"expand\" onClick=\"return ExpandToggle('topic".$row['id']."')\"><b>Celý článok</b></span><div id=\"topic".$row['id']."\" class=\"expandedblock\" style=\"display:none\">" . $row['clanok'] . "</div>";
              echo "<br><br>";
            }
           

            //Začiatok stránkovania
            $max_clankov = 5;
            $stranka = $_GET["aktualna_stranka"];
            if(!is_numeric($stranka))
            {
               $stranka = 1;
            }
            $result = mysqli_query($con,"SELECT COUNT(*) FROM Spravy WHERE zmazane = '0'");
            $pocet = mysqli_fetch_array($result,MYSQLI_NUM);
            $pocet_stranok = $pocet[0]/$max_clankov;
            $pocet_stranok = ceil($pocet_stranok);
            echo $pocet_stranok;
           
            mysqli_close($con);
?>


takto mi to funguje, aj ked vypise chybu skrz $stranka kedze nemam v odkaze parameter aktualna_stranka=0 ale s tym sa nezobrazi ziadne chybove hlasenie, ale $pocet_stranok mi zobrazi 1 pri 5 clankoch, pridal som 6 a zobrazilo 2. Takze nieco robis zle







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.08.07
Prihlásený: 30.07.14
Príspevky: 51
Témy: 10
Príspevok Napísal autor témyOffline : 30.07.2014 16:42

Aaaa, ja som tam nedával toto potom. :D $pocet = mysqli_fetch_array($result,MYSQLI_NUM);
Už to fičí. :) Ďakujem. :)


Odpovedať na tému [ Príspevkov: 14 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. PHP stránkovanie v dive - znemožní stránkovanie

v PHP, ASP

7

545

24.07.2011 12:44

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Strankovanie

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

35

2250

13.01.2008 14:11

ROmario Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. strankovanie

v JavaScript, VBScript, Ajax

3

626

09.01.2009 12:47

rooobertek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. stránkovanie

v PHP, ASP

12

1011

01.10.2009 18:08

dessert Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Strankovanie

v PHP, ASP

7

543

03.05.2008 11:24

qacer Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. strankovanie

v PHP, ASP

6

345

30.09.2014 22:20

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular, strankovanie

v PHP, ASP

3

463

17.02.2009 16:11

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vyriesene - Strankovanie

v PHP, ASP

0

361

12.03.2010 10:35

speedy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. strankovanie clankov

v Databázy

12

860

07.11.2007 20:22

tatysp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Strankovanie galerie

v PHP, ASP

2

333

25.06.2012 14:57

Slavci Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Strankovanie v mySQL

v PHP, ASP

5

1326

29.09.2006 21:19

atdesign Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. .htaccess a strankovanie

v Ostatné

4

304

08.10.2012 15:21

Lier Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. strankovanie cez pole

v PHP, ASP

3

514

20.05.2008 8:56

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vysvetlit: strankovanie - vdaka

v PHP, ASP

22

1401

26.06.2008 23:31

Blackshadow Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stránkovanie vo Worde

v Ostatné programy

2

1709

03.03.2009 15:47

slavo285 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. PHP a stránkovanie

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

31

3180

03.07.2009 13:55

stenley Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra