Veel data opsplitsen in pagina's?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Innovatieve, nauwkeurige Senior PHP Developer voor

Eind jaren ’90 is dit bedrijf opgericht. Ze hebben zich altijd beziggehouden met het ontwikkelen van software voor overheidsinstanties. Dit zijn instanties waaronder bijvoorbeeld ook onder andere : de belastingdienst, burgerszaken, verschillende bedrijven, notarissen, incassobureau’s en ook nog bewindvoerders. Momenteel tellen ze 20 medewerkers, waarvan 2/3 deel allemaal developers zijn. Doordat ze de enigste aanbieder van dit soort software op de markt zijn, groeien ze erg hard. Door de enorme groei, hebben ze dan ook concrete groeiplannen in het verschiet. Functie-omschrijving Het bedrijf wordt door allerlei instanties ingeschakeld. Tegenwoordig wordt alles digitaal geregeld en gezien de essentie van dit soort

Bekijk vacature »

Pascal Schuffelers

Pascal Schuffelers

26/09/2018 19:52:22
Quote Anchor link
Ik heb 1 database met erg veel data.
Nu zie je op websites wel eens dat ze dat bv 10 regels per pagina tonen en dat dan tich pagina's te klikken zijn.
Waar kan ik zo een voorbeeld bekijken of hebben jullie zo een idee?
ps ik werk met pdo
Gewijzigd op 26/09/2018 20:02:13 door Pascal Schuffelers
 
PHP hulp

PHP hulp

15/02/2019 21:15:21
 
Rob Doemaarwat

Rob Doemaarwat

26/09/2018 20:06:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$records_per_page = 10;
$page = (int)$_GET['page']; //0-based, dus 0 = pagina 1, enz
$offset = $page * $records_per_page;
$sql = "select * from tabel limit $offset,$records_per_page";
//en die dan weergeven
 
Pascal Schuffelers

Pascal Schuffelers

26/09/2018 20:13:48
Quote Anchor link
Ah, je was me al iets voor.
Ik had dit gevonden.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
                       include 'database.php';
                       $results_per_page = 20; // number of results per page
                       $pdo = Database::connect();

                       if (isset($_GET["page"])) { $page  = $_GET["page"]; } else { $page=1; };
                       $start_from = ($page-1) * $results_per_page;

                       $sql = "SELECT * FROM metingen ORDER BY Id DESC LIMIT $start_from, ".$results_per_page;
                        foreach ($pdo->query($sql) as $row) {
                            echo '<tr>';
                            echo '<td>'. $row['Id'] . '</td>';
                            enz.....


Maar nu komt het, onder die 20 weergaves zouden de pagina's moeten komen.
Zij hebben dit als code.:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
$sql = "SELECT COUNT(ID) AS total FROM metingen";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_pages = ceil($row["total"] / $results_per_page); // calculate total pages with results

for ($i=1; $i<=$total_pages; $i++) {  // print links for all pages
            echo "<a href='index_metingen.php?page=".$i."'";
            if ($i==$page)  echo " class='curPage'";
            echo ">".$i."</a> ";
};

Alleen dat stukje laat geen pagina's zien, ga er dan ook vanuit omdat het niet via pdo loopt, maar hoe dan wel?

update

reeds zelf gevonden door een beetje puzzelen en dit is nu werkend.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$sql = "SELECT COUNT(Id) AS total FROM metingen";
  $q = $pdo->prepare($sql);
        $q->execute(array($Id));
        $data = $q->fetch(PDO::FETCH_ASSOC);
$total_pages = ceil($data["total"] / $results_per_page); // calculate total pages with results

for ($i=1; $i<=$total_pages; $i++) {  // print links for all pages
            echo "<a href='index_metingen.php?page=".$i."'";
            if ($i==$page)  echo " class='curPage'";
            echo ">".$i."</a> ";
};
Gewijzigd op 26/09/2018 20:29:19 door Pascal Schuffelers
 
Michael -

Michael -

26/09/2018 21:09:15
Quote Anchor link
Wat je zoekt heet pagination.
 



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.