[ 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 | 10
NapísalOffline : 29.07.2014 1:43 | Stránkovanie, pomoc

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 | 39
NapísalOffline : 29.07.2014 8:46 | Stránkovanie, pomoc

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 | 10
Napísal autor témyOffline : 29.07.2014 12:07 | Stránkovanie, pomoc

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 | 39
NapísalOffline : 29.07.2014 12:24 | Stránkovanie, pomoc

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 | 10
Napísal autor témyOffline : 29.07.2014 12:54 | Stránkovanie, pomoc

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: 13416
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 29.07.2014 13:18 | Stránkovanie, pomoc

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 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 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 24.04.1 LTS
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 | 10
Napísal autor témyOffline : 29.07.2014 14:06 | Stránkovanie, pomoc

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: 13416
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 29.07.2014 14:14 | Stránkovanie, pomoc

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 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 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 24.04.1 LTS
Offline

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

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 29.07.2014 14:30 | Stránkovanie, pomoc

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 | 10
Napísal autor témyOffline : 29.07.2014 16:56 | Stránkovanie, pomoc

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: 13416
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 29.07.2014 17:25 | Stránkovanie, pomoc

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 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 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 24.04.1 LTS
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 | 10
Napísal autor témyOffline : 29.07.2014 17:41 | Stránkovanie, pomoc

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: 13416
Témy: 1494 | 1494
Bydlisko: Bratislava
NapísalOffline : 29.07.2014 18:33 | Stránkovanie, pomoc

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 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 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 24.04.1 LTS
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 | 10
Napísal autor témyOffline : 30.07.2014 16:42 | Stránkovanie, pomoc

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


 [ Príspevkov: 14 ] 


Stránkovanie, pomoc



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

578

24.07.2011 12:44

shaggy

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

stránkovanie

v PHP, ASP

12

1044

01.10.2009 18:08

dessert

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

strankovanie

v JavaScript, VBScript, Ajax

3

661

09.01.2009 12:47

rooobertek

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

strankovanie

v PHP, ASP

6

380

30.09.2014 22:20

shaggy

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

Strankovanie

v PHP, ASP

7

577

03.05.2008 11:24

qacer

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

2320

13.01.2008 14:11

ROmario

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

Vyriesene - Strankovanie

v PHP, ASP

0

390

12.03.2010 10:35

speedy

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

formular, strankovanie

v PHP, ASP

3

487

17.02.2009 16:11

Blackshadow

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

Strankovanie galerie

v PHP, ASP

2

363

25.06.2012 14:57

Slavci

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

strankovanie clankov

v Databázy

12

888

07.11.2007 20:22

tatysp

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

strankovanie cez pole

v PHP, ASP

3

540

20.05.2008 8:56

p360t

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

vysvetlit: strankovanie - vdaka

v PHP, ASP

22

1439

26.06.2008 23:31

Blackshadow

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

Stránkovanie vo Worde

v Ostatné programy

2

1756

03.03.2009 15:47

slavo285

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

3231

03.07.2009 13:55

stenley

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

strankovanie jaksi nefakci

v PHP, ASP

8

447

22.01.2009 20:41

djsulo

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

strankovanie bez DB

v PHP, ASP

9

658

03.10.2007 20:38

juho



© 2005 - 2024 PCforum, edited by JanoF