Functie voor meerdere pagina's bij queries.

Door Ren , 18 jaar geleden, 3.594x bekeken

Als je te maken hebt met bijvoorbeeld een gastenboek, en je hebt veel berichten, dan kan deze functie handig zijn.
Je geeft het aantal berichten per pagina op, het paginanummer (dus 1 of hoger), het totaal aantal berichten (dit krijg je met mysql_num_rows bijvoorbeeld) en dan
kun je voor de query het 'LIMIT getal, getal' gedeelte uitrekenen, en of er nog een volgende en of er nog een vorige pagina is (en als dat zo is geeft hij de volgende/vorige paginanummer terug), en hoeveel pagina's er zijn.

Gesponsorde koppelingen

PHP script bestanden

  1. functie-voor-meerdere-paginas-bij-queries

 

Er zijn 9 reacties op 'Functie voor meerdere paginas bij queries'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Koen Bressers
Koen Bressers
18 jaar geleden
 
0 +1 -0 -1
Mooi script, zelf heb ik dit:

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
<?php

$nummer
= 10;
$records_query = "SELECT * FROM gastenboek";

$vanaf = $_GET['num'];
if($vanaf == ""){ $vanaf = 0; }
$records = mysql_query($records_query) or die(mysql_error());
$records_num = mysql_num_rows($records);
$vanaf_new = $vanaf - $nummer;
$vanaf_old = $vanaf + $nummer;
$records_num_min = $records_num - $nummer;

if($vanaf > 0){    echo "<a href='index.php&num=".$vanaf_new."'>Nieuwere ".$nummer."</a>"; }
else { echo "Volgende ".$nummer.""; }

echo "&nbsp;&nbsp;|&nbsp;&nbsp;";

if($vanaf < $records_num_min){ echo "<a href='index.php&num=".$vanaf_old."'>Oudere ".$nummer."</a>"; }
else { echo "Vorige ".$nummer.""; }

?>
Ren
Ren
18 jaar geleden
 
0 +1 -0 -1
Dat komt volgens mij op hetzelfde neer, alleen bij mij staat het in een functie :D
En jouw eerste pagina is pagina 0, bij mij is dat 1
Robert Deiman
Robert Deiman
18 jaar geleden
 
0 +1 -0 -1
Ik heb het zelf zo gedaan, je kan dan niet op de "vorige" link klikken, wanneer je op de 1e pagina zit en niet op "volgende" wanneer je op de laatste pagina bent.

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
<?php

/* kijken of een positie is meegegeven, anders wordt de 1e pagina getoont */
if(isset($_GET['positie'])==0){
 $positie=0;
}
else{
 $positie=(int)$_GET['positie'];
}

$aantalperpagina=10;
$SQL_code="SELECT * FROM gastenboek ORDER BY datum DESC LIMIT $positie,$aantalperpagina";
$resultaat=mysql_query($SQL_code);

//Aantal records berekenen
$aantal_rijen=mysql_num_rows(mysql_query("SELECT id FROM gastenboek"));

//Met de volgende opdrachten worden de links gemaakt.
$volgendepagina=$positie+$aantalperpagina;
if($volgendepagina>=$aantal_rijen){
$link_volgende="Volgende >>";
}
else {
$link_next="<a href=naamvanpagina.php?positie=" . $volgendepagina . ">Volgende >></a>";
}

$vorigepagina=$positie-$aantalperpagina;
if($vorigepagina<0){
$link_vorige="<< Vorige";
}
else {
$link_vorige="<a href=naamvanpagina.php?positie=" . $vorigepagina . "><< Vorige</a>";
}


// om de links te maken en weer te geven
[code]<?php echo $link_vorige . "&nbsp;&nbsp; " . $link_volgende ?>

?>
Jelle Posthuma
Jelle Posthuma
18 jaar geleden
 
0 +1 -0 -1
Hoe gebruik ik zo'n script??
Robert Deiman
Robert Deiman
18 jaar geleden
 
0 +1 -0 -1
Als je goed naar de uitleg kijkt die ik erbij heb gezet, dan moet je eruit kunnen komen:

Het hele stuk voor de commentaarregel "// om de links te maken en weer te geven"
Moet je zo gebruiken als waar het staat. Verander wel de SQL_code in de query die je zelf wilt gebruiken. (LAAT "LIMIT $positie,$aantalperpagina" wel staan, hierin selecteerd die alleen de records die op een pagina worden weergegeven.

Vervolgens geef je de resultaten weer op je pagina (ff een kort voorbeeld):

<html>
<body>
<table>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
while($dezeweergeven=mysql_fetch_array($resultaat)){
?>


<tr>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $dezeweergeven['kolomnaam'] ?>
</td>
</tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
}

// EN DAN DUS NA DE WHILE LOOP
echo ("$link_vorige . "&nbsp;&nbsp; " . $link_volgende");
?>


Hoop dat het duidelijk genoeg is zo, anders hoor ik het nog wel van je
Hipska BE
Hipska BE
18 jaar geleden
 
0 +1 -0 -1
ik heb hem ietsje aangepast en dan gebruikt op mijn site, en hij werkt super ! (y)
Kevin
Kevin
18 jaar geleden
 
0 +1 -0 -1
Leuk script echt waar! alleen jammer dat het niet werkt..
Niels van loo
niels van loo
17 jaar geleden
 
0 +1 -0 -1
in die post van robert staat een klein foutje in zijn code,

onderaan bij die opdrachten staat link_volgende en daaronder link_next,

die link_next moet ook link_volgende zijn (anders kwam geen volgende link tevoorschijn bij mij :) )

bedankt voor het script robert, alles werkt nu eindelijk perfect !
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Niek Kasius
Niek Kasius
16 jaar geleden
 
0 +1 -0 -1
Koen Bressers en of Robert_Deiman !!
Hoe krijg je dat aan het werken ? als je een database hebt. want zoals jullie het hier hebben staan, zou volgens mij betekenen, dat je voor ieder script dat werkt met mysql een apparte batabase zou moeten aanmaken. en dan zit je al snel aan je database limiet op de meeste servers.
ik zie het wel als ik ongelijk heb.
Pas op dit is geen Kritiek

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. functie-voor-meerdere-paginas-bij-queries

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.