Kezdőoldal » Számítástechnika » Weblapkészítés » Hogyan tudnám megoldani ezt a...

Hogyan tudnám megoldani ezt a php lapozót?

Figyelt kérdés

Kezdő vagyok php témában, ezért szeretném a segítségeteket kérni. A webserver kft pár éve csinált egy blog tutorialt, youtube-on fent a video. Ezt csináltam meg, ill. próbálgatom.

Készített hozzá lapozót is (ezt kihagytam), de szeretném hogy másmilyen legyen.


A főoldal.php tartalma ami megjeleníti a postokat:


<?php



if (!isset($blogbanvagyok))

{

die('ne nyisd meg így az oldalt!');

}



$leker = mysql_query('SELECT * FROM postok ORDER BY datum DESC');

while ($sor = mysql_fetch_array($leker))

{

echo '<div class="bejegyzes">

<a href="index.php?bejegyzes='.$sor['ID'].'" class="cim">'.$sor['cim'].'</a>

<p>'.$sor['szoveg'].'</p>';

if ($sor['szoveg_plusz'])

{

echo '<div align="right">

<a href="index.php?bejegyzes='.$sor['ID'].'" class="tovabblink">Tovább a teljes bejegyzésre</a>

</div>';

}

echo '</div>';


}


Ez így ebben a formában kiírja az összes bejegyzést egy oldalra.

Úgy szeretném, hogy 2 gombja legyen alul, egy következő /az oldal jobb oldalára/ és egy előző gomb /az oldal bal oldalára/, ill. hogy egy bejegyzés jelenjen meg az oldalon mindig ami az aktuális. Próbálgattam már sokféleképp, de sajnos nem jöttem rá hogy kellene.

Ennyit szeretnék, remélem tudtok segíteni!

A válaszokat előre is köszönöm!



2015. nov. 2. 01:05
 1/5 anonim ***** válasza:

... ORDER BY datum DESC után meg kell adnod a limit értéket, amit pl. egy változóban adsz át pl. $page.


pl.:

$page = ((is_int($_REQUEST['page']) && $_REQUEST['page']>0)?($_REQUEST['page']):(1));

$pLimit = 20; /* Ennyi sor oldalanként */

$leker = mysql_query('SELECT * FROM postok ORDER BY datum DESC LIMIT '.($page-1*$pLimit).', '.($pLimit).');


Ahhoz hogy lapozó gombokat is elhelyez, le kell kérned mennyi sor van a táblában, majd elosztanod a megjelenített tartalommal, és fel kerekített érték határozza meg, hogy hány oldal lesz.


$leker = mysql_query('SELECT * FROM postok ORDER BY datum DESC');

$pNum = ceil(mysql_num_rows($leker)/$pLimit);

echo' <strong>Oldalak:</strong> ';

for($a=1;$a<=$pNum;$a++) {

echo' <a href="index.php?page='.($a).'">'.($a).'.</a> ';

}

2015. nov. 2. 06:40
Hasznos számodra ez a válasz?
 2/5 anonim ***** válasza:

Elöző következő az előbbi alapján:

if($page>1){ echo' <a href="?page='.($page-1).'">« Előző</a> '; }

if($pNum>$page){ echo' <a href="?page='.($page+1).'">Következő »</a> '; }

2015. nov. 2. 06:43
Hasznos számodra ez a válasz?
 3/5 A kérdező kommentje:
Köszönöm a választ, de nem igazán sikerül működésre bírni ezt sem, egy kicsit részletesebben ki tudnád fejteni az egészet?
2015. nov. 2. 10:13
 4/5 A kérdező kommentje:
Senki nem tud segíteni?
2015. nov. 3. 09:34
 5/5 A kérdező kommentje:

Felteszem máshogy a kérdést.


<?php



if (!isset($blogbanvagyok))

{

die('nem szabad!');

}



$bejegyzesekszama = mysql_query('SELECT COUNT(*) AS darab FROM postok');

$bejegyzesekszama = mysql_fetch_array($bejegyzesekszama);

$darab = $bejegyzesekszama['darab'];


$oldalakszama = ceil($darab / 1);


$oldal = (int)$_GET['oldal'];

if ($oldal<1)

{

$oldal = 1;

}


$innen = ($oldal-1)*1;



$leker = mysql_query('SELECT * FROM postok ORDER BY datum DESC LIMIT '.$innen.',1');

while ($sor = mysql_fetch_array($leker))

{

echo '<div class="bejegyzes">

<a href="index.php?bejegyzes='.$sor['ID'].'" class="cim">'.$sor['cim'].'</a>

<p>'.$sor['szoveg'].'</p>';

if ($sor['szoveg_plusz'])

{

echo '<div align="right">

<a href="index.php?bejegyzes='.$sor['ID'].'" class="tovabblink">Tovább a teljes bejegyzésre</a>

</div>';

}

echo '</div>';


}


for ($i = 1;$i<=$oldalakszama;$i++)

{


if($i==$oldal)

{

echo '<b>'.$i.'</b> ';

}

else

echo '<a href="index.php?oldal='.$i.'">'.$i.'</a> ';

}



Itt a lapozó ami a tutorialban volt. Ezzel elértem, hogy egy bejegyzés jelenjen meg ami az aktuális, viszont alul annyi link jelenik meg ahány bejegyzés van az adatbázisban. (tehát ha öt van akkor így jelenik meg: 1 2 3 4 5) Annyit szeretnék, hogy alul csak egy Előző és egy Következő hivatkozás legyen.

Remélem tud valaki segíteni, előre is köszönöm!

2015. nov. 3. 11:36

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!