Tabel splitsen en meerdere pagina's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Ray Mond

Ray Mond

12/10/2022 12:21:57
Quote Anchor link
Adoptive Solution op 12/10/2022 12:11:05:
Omdat dit topic nog wel een paar maanden zal aanhouden zonder dat een oplossing in zicht is, hier mijn bijdrage:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<style>
tr:nth-child(odd) {
    background: #dcdcdc;
    }

tr:nth-child(even) {
    background: #dcdcaa;
    }
</style>

<table style="width:50%; border: 1px solid red;">

<tbody>

<?php

$aantalrecords
= 22; // opgehaald in database
$advertentie   = 5; // toon advertentie na zoveel regels

for ( $i = 0; $i < $aantalrecords; $i++ ):

    if ( $i % $advertentie == 0 && $i >= $advertentie ):
        echo '<tr><td>HIER ADVERTENTIE</td></tr>' . PHP_EOL;
    endif;


    echo '<tr><td><p>' . $i + 1 . ' data</p></td></tr>' . PHP_EOL;

endfor;

?>


</tbody>

</table>


YESSSS!!! Dit is al bijna helemaal top!!!

Ik krijg nu inderdaad 10 rows, advertentie, weer 10, advertentie enzovoort, enkel is wel dat de pagina nu ellenlang is, alle results ook 10 - 30 keer weergeven en dat pagina 2 niet begint op dit moment bij 30 maar dat zal tweaken zijn..

Bedankt al voor je bijdrage! Ben nu al stukken verder! :D
 
PHP hulp

PHP hulp

29/03/2024 07:25:28
 
- Ariën  -
Beheerder

- Ariën -

12/10/2022 12:46:41
Quote Anchor link
Dan moet je op zoek naar (de werking van) een pagination-script.
Deze zorgt voor een variabele query die aan de hand LIMIT (of OFFSET) in MySQL welke rijen er getoond worden.

1) Bepaal eerst het paginanummer vanuit $_GET. Is er geen $_GET['pagina'], start dan altijd bij 1.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
   if (!isset ($_GET['pagina']) ) {  
        $paginanummer = 1;  
    }
else {  
        $paginanummer  = $_GET['pagina'];  
    }
  
?>


2) Schrijf de formule voor het aantal items per pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$aantal
= 5;  
$startitem = ($paginanummer-1) * $aantal;
?>


3) Tel het totaal aantal pagina's
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql
= "SELECT * FROM items";
$result = mysqli_query($conn, $sql);  
$totaal = mysqli_num_rows($result);
$aantalpaginas = ceil($totaal / $aantal);  // afronden naar boven van 16 / 3 = 4 pagina's en 15 / 3 is drie pagina's
 ?>


4) Pas je query aan op je formule en toon de rijen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
 $sql
= "SELECT * FROM items LIMIT " . $startitem. ',' . $aantal;  
 $result = mysqli_query($conn, $sql);      
    while ($row = mysqli_fetch_array($result)) {  
        echo $row['ID'] . ' ' . $row['Naam'] . '</br>';  
    }
  
?>


5) Toon de pagina's voor de navigatie in een for-loop:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for($paginanummer  = 1; $paginanummer <= $aantalpaginas ; $paginanummer++) {  
    echo '<a href = "script.php?pagina='. $paginanummer.'">'.$paginanummer.'</a>';  
}

?>


Je kan de laatste stap nog verder verfijnen door bijvoorbeeld de huidige pagina nummer niet klikbaar te maken, of een eigen stijl te geven, of enkel de voorgaande drie en de opvolgende x aantal pagina's in de rij te tonen. Een kwestie van experimenteren.
Gewijzigd op 12/10/2022 13:44:53 door - Ariën -
 
Ray Mond

Ray Mond

12/10/2022 13:22:47
Quote Anchor link
Mijn pagination werkte wel maar door dit script nu toegevoegd te hebben werkt het niet lekker meer :)

Ik krijg elke site als het ware 30 keer te zien, dit tot aan 30 stuks toe, op pagina 2 begint het opnieuw..

Moet even zien hoe dit uit te vogelen zodat het wel 'normaal' loopt..
 
- Ariën  -
Beheerder

- Ariën -

12/10/2022 13:37:05
Quote Anchor link
Dan mis je blijkbaar een deel.
Ik zou zeggen: ga eens debuggen, en kijk stap voor stap wat er gebeurt en met name bij je LIMIT-query.

Ik neem aan dat je niet rücksichtslos kopieert en plakt.
Gewijzigd op 12/10/2022 13:37:37 door - Ariën -
 

Pagina: « vorige 1 2 3



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.