[ 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: 12516
Témy: 41 | 41
Bydlisko: Martin
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: 12516
Témy: 41 | 41
Bydlisko: Martin
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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
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


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
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;


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

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

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

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
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;


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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: 12424
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
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


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
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

307

24.07.2011 12:44

shaggy

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

Strankovanie

v PHP, ASP

7

341

03.05.2008 11:24

qacer

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

strankovanie

v JavaScript, VBScript, Ajax

3

438

09.01.2009 12:47

rooobertek

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

1849

13.01.2008 14:11

ROmario

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

stránkovanie

v PHP, ASP

12

819

01.10.2009 18:08

dessert

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

strankovanie

v PHP, ASP

6

145

30.09.2014 22:20

shaggy

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

Vyriesene - Strankovanie

v PHP, ASP

0

204

12.03.2010 10:35

speedy

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

Strankovanie galerie

v PHP, ASP

2

183

25.06.2012 14:57

Slavci

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

strankovanie clankov

v Databázy

12

622

07.11.2007 20:22

tatysp

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

formular, strankovanie

v PHP, ASP

3

342

17.02.2009 16:11

Blackshadow

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

strankovanie cez pole

v PHP, ASP

3

330

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

1107

26.06.2008 23:31

Blackshadow

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

strankovanie bez DB

v PHP, ASP

9

423

03.10.2007 20:38

juho

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

Stránkovanie vo Worde

v Ostatné programy

2

1475

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

2775

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

282

22.01.2009 20:41

djsulo



© 2005 - 2017 PCforum, edited by JanoF