Max 5 reacties / pagina

  • Hallo,


    Ik ben momenteel bezig met een forum voor mijn spel en het lukt aardig. Alleen zit ik vast bij het weergeven van een maximum aantal reacties, en dat hij dan overspringt naar pagina 2, 3, 4, etc.


    Zou iemand me hierbij kunnen helpen? Of weet iemand een goede tutorial?


    Geen reacties zoals gebruik google of Let Me google That For you.


    Alvast bedankt.

  • In de Query kan je zette LIMIT $begin, $einde
    en dan de variabelen invullen.


    Voor verdere uitleg over LIMIT zal je moeten GOOGLEN.

  • Citaat van brandon192

    Zou wel leuk zijn als je reactie hier plaats zodat wij ook weten waar we een goede tutorial kunnenvinden.


    [offtopic]Vind het wel interessant en weet ook niet hoe werkt.[/offtopic]



    Is goed ;)

  • Als je het niet via jQuery wilt doen zoals L.Groot al zei, kan je het ook anders doen.


    Eerst ga je het aantal reacties tellen in je database, dit doe je bijvoorbeeld zo:


    PHP
    $res1 = mysql_query("SELECT COUNT(id) FROM TABEL");
    $items_totaal = mysql_result($res1, 0);


    Vervolgens maak voeg je de aantal reacties toe die per pagina mogen en bereken je het aantal pagina's uit:


    PHP
    $items_per_pagina = 5;
    $aantal_paginas = ceil($items_totaal / $items_per_pagina);


    Je zegt hier dus dat er maximaal maar 5 reacties per pagina mogen en je berekent hier het aantal pagina's die er zijn uit door het aantal reacties te delen door de pagina limiet. Als er dus 20 reacties zijn en er mogen maar 5 reacties per pagina, krijg je dus 4 pagina's (20:5)


    Dan ga je de $_GET maken, hierin sla je de pagina nummers op. Als je bijvoorbeeld op pagina 1 zit krijg je dus script.php&page=1.


    PHP
    $huidige_pagina = 0;
    if(isset($_GET['page']) && is_numeric($_GET['page']) && $_GET['page'] > 0 && $_GET['page'] < $aantal_paginas) {
        $huidige_pagina = $_GET['page'];
    }


    De $huidige_pagina zorgt ervoor dat als er geen page waarde is meegegeven aan de pagina hij dus standaard naar pagina 0 gaat, de begin post dus. Als er wel een page waarde is meegegeven haal je de page waarde op uit je URL en verander je de $huidige_pagina naar de pagina nummer waar je op zit, dit doe je via een $_GET.


    Dan ben je er bijna, nu moet je nog een select maken waarmee de gebruiker van pagina kan veranderen.


    PHP
    <select onChange='location="script.php&page=" + this.value'>
    <?
    for($i = 0; $i < $aantal_paginas; $i++) {
    if($huidige_pagina == $i){
    					echo "<option value='".$i."' selected='selected'>Je bent momenteel op pagina ".($i + 1)."</option>";
    				} else {
    					echo "<option value='".$i."'>Naar pagina ".($i+1)."</option>";
    				}	
    			}
    ?></select>


    Nu moet er nog een ding gebeuren, en dat is je mysql_query waarmee je de reacties ophaalt uit je database, die heeft een kleine aanpassing nodig.


    Als eerste zet je deze code boven je query:


    PHP
    $offset = $huidige_pagina * $items_per_pagina;


    Vervolgens voeg je een limiet toe aan het einde van je query:


    PHP
    DESC LIMIT ".$offset.",".$items_per_pagina);



    Zo zou het moeten werken ;)
    Ik ben niet echt een ster in het schrijven van een tutorial dus als je nog een vraag hebt, gewoon vragen ;)


    (Eigenlijk is dit niet een tutorial maar geef ik je gewoon de benodigde code)


    MVG.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!