PHP MySQL sideinddeling Tutorial

August 2

Paginating MySQL resultater med PHP har en række fordele. Første, det fremskynder MySQL query, da den kun returnerer et lille antal resultater. For det andet, det forbedrer brugerens oplevelse, da det viser et overskueligt antal produkter per side. For det tredje, det sparer båndbredde ved ikke at sende unødvendige resultater. Af disse grunde har mange steder, herunder Google, Yahoo og WordPress, vedtog sin brug. For at bruge MySQL paginering, skal du bruge SQL "LIMIT" kommando og "få" parametre i URL'en.

Instruktioner

1 Oprette en tabel "telefonbog" i din MySQL-database med kolonnerne "id", "name" og "telefon". Udfylde tabellen med et par poster. Her er de SQL-forespørgsler til at skabe og udfylde tabellen, henholdsvis:

CREATE TABLE telefonbog ( id int (11) NOT NULL AUTO_INCREMENT, name varchar (100) NOT NULL, telephone varchar (20) NOT NULL, PRIMARY KEY ( id ));

Indsæt i telefonbog ( name , telephone ) VALUES ( 'Jack', '201-379-5406'), ( 'Jake', '331-123-5196'), ( 'John', '222-342-3250') ;

2 Opret en ny fil "pagination.php", og åbne den med en teksteditor som Notesblok. Skriv et segment af kode, der forbinder til din MySQL-server, bruger PHP er "mysql_connect" funktion, og vælger den database, der indeholder "telefonbog" bord, med PHP er "mysql_select_db" funktion. Her er et eksempel:

mysql_connect ( 'localhost', 'admin', 'password');

mysql_select_db ( 'test');

Udskift de fire strygere med din vært, brugernavn, password og database, hhv.

3 Skriv et segment af kode, der sætter variablen "$ rowsPerPage" til antallet af rækker, der skal vises pr side, sætter "$ currentPage" til den ønskede via "$ _GET [ 'side']" eller nul, hvis ingen og sæt "side $ offset "til forskydningen, hvorfra man kan hente rækker fra databasen, beregnes ved at trække en fra" $ currentPage "og multiplicere med" $ rowsPerPage. " Her er et eksempel:

$ RowsPerPage = 5;

$ CurrentPage = ((isset ($ _ GET [ 'side']) && $ _GET [ 'side']> 0) (int) $ _ GET [ 'side']:? 1);

$ Offset = ($ currentPage-1) * $ rowsPerPage;

4 Skriv en linje kode, der henter "$ rowsPerPage" rækker startende fra den offset sat i "$ offset" fra tabellen "telefonbog" ved at udføre en "SELECT" forespørgsel via PHP s "mysql_query" funktion og gemmer resultatet i en ny variabel. Her er koden:

$ Result = mysql_query ( "SELECT * FROM telefonbog LIMIT '$ offset', '$ rowsPerPage...);

5 Skriv en "mens" løkke, der henter rækkerne fra forespørgslen resultat sæt, "$ resultat," ved hjælp af PHP er "mysql_fetch_assoc" funktion og viser dem som en liste eller tabel. Her er et eksempel:

echo "<table> <tr> <th> ID </ th> <th> Navn </ th> <th> Telefonnummer </ th> </ tr> ';

mens ($ row = mysql_fetch_assoc ($ resultat)) {

echo "<tr> <td> '. $ Row [ 'id']. "</ Td> <td> '. $ Row [ 'navn']. "</ Td> <td> '. $ Row [ 'telefon']. "</ Td> </ tr> ';

}

echo "</ table> ';

6 Skriv et segment af kode, der henter antallet af poster i tabellen ved at indgå en "TÆL" forespørgsel via PHP s "mysql_query" funktion, beregner antallet af sider ved at dividere antallet af registreringer af "$ rowsPerPage" variabel og afrunding opad og gemmer resultatet i en variabel "$ totalpages." Her er koden:

$ Result = mysql_query ( "SELECT COUNT (*) AS antal FROM telefonbog ');

$ Row = mysql_fetch_assoc ($ resultat);

$ Totalpages = loft ($ row [ 'count'] / $ rowsPerPage);

7 Skriv to "hvis" udsagn: en, der viser en "Forrige side" linket og en, der viser en "Next Page" linket, hvis den respektive side eksisterer (dvs. hvis "$ currentPage" er større end en for "Forrige side" og hvis "$ currentPage" er større end "$ totalpages" for "Næste side"). Her er koden:

if ($ currentPage> 1) {

echo '<a href="pagination.php?page=' ($currentPage-1)'"> Forrige side </a>..';

}

if ($ currentPage <$ totalpages) {

echo '.. <a href="pagination.php?page=' ($currentPage+1)'"> Næste side </a> «

}


relaterede artikler