[PHP] Volgende / Vorige
ik zal niet weten waar ik aan moet beginnen, ik wil geen geripte van iemand.
Ik wil er van leren door het zelf te maken.
kan iemand mij op het juiste pad zetten.
ik weet dat ik:
$sql = "SELECT * FROM `bblalbla` LIMIT 7";
en het liefst wil ik het heel simpel houden :P
en meer weet ik ook niet van hoe ik zoiets moet maken.
Gewijzigd op 01/01/1970 01:00:00 door Lorenzo
Misschien kun je hier iets mee? Zo kun je dus uitrekenen per pagina vanaf welk record je moet beginnen met selecteren.
je klikt op volgende en dan moet die de volgende 7 zien maar hoe moet dat :P.
weet het echt niet
ik heb al een stuk of 5 van zoon scripts gezien en probeerde het te begrijpen maar helaas met geen succes. Maar ik denk dat het niet zo moeilijk is maar kan iemand mij op het juiste pad helpen door welke functies ik moet gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door lorenzo
1) totaal aantal records
2) aantal links dat je per pagina weer wilt geven
3) het record waar de huidige pagina mee moet beginnen
Je kunt bijv hyperlinks maken die er zo uit zien:
Code (php)
De waardes van $begin_vorige en $begin_vorige moet je dan met PHP uitrekenen.
maar stel voor ik klik op volgende, hoe moet die dan uit de mysql de volgende 7 records laten zien? Dat idee snap ik niet
Kijk anders eens in de scriptlib. Er staan echt giga veel scriptjes met dit onderwerp.
ja ik weet het maar ik word er niet wijs uit. En dan heb ik er niks aan want ik wil het leren niet rippen.
1 Het aantal records in je DB (voor het aantal pagina's)
2 Het aantal items per pagina (dhu)
3 En last but not least, in welke pagina je op het moment zit
1. Kun je doen moet count en ceil
2. Zet je in een var in je pagina.
3. Doe je dmv get en een berekening
Dat zijn ongeveer de stappen en de bijbehorende duwtjes in de goed richting
nu kan ik ff vooruit,, thnx jacco :P
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
//Paginanummer die de PHP Code binnen krijgt
$iPaginanr = $_GET['begin'];
//Controleer of Paginanummer is niet 0 of geen getal.
if($iPaginanr == 0 || !is_int($iPaginanr){
$iPaginanr = 1;
}else{
$iPaginanr = $iPaginanr;
}
//Aantal posts per Pagina
$iPostPerPagina = 7;
//Gezien je geen Pagina 0 wil is 1 = 0, 2 = 1 etc, daarom haal je het aantal post per pagina er nogmaals af.
$PostCalcStart = $iPaginanr*iPostPerPagina-$iPostPerPagina;
//SQL Code
$sql = "SELECT * FROM `gastenboek` LIMIT ".$iPostCalcStart.",".$iPostPerPagina."";
?>
//Paginanummer die de PHP Code binnen krijgt
$iPaginanr = $_GET['begin'];
//Controleer of Paginanummer is niet 0 of geen getal.
if($iPaginanr == 0 || !is_int($iPaginanr){
$iPaginanr = 1;
}else{
$iPaginanr = $iPaginanr;
}
//Aantal posts per Pagina
$iPostPerPagina = 7;
//Gezien je geen Pagina 0 wil is 1 = 0, 2 = 1 etc, daarom haal je het aantal post per pagina er nogmaals af.
$PostCalcStart = $iPaginanr*iPostPerPagina-$iPostPerPagina;
//SQL Code
$sql = "SELECT * FROM `gastenboek` LIMIT ".$iPostCalcStart.",".$iPostPerPagina."";
?>
Script niet getest, wil alleen het principe aangeven.
Edit: Jacco was me voor.
Gewijzigd op 01/01/1970 01:00:00 door JunkieXP
dit is de code.
Code (php)
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
35
36
37
38
39
40
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
35
36
37
38
39
40
<?php
// verbinding maken
include('config.php');
// Kijkt of $begin al aangegeven is. Zoniet, dan is $begin 0. Dus begint hij de tabel uit te lezen vanaf rij $begin.
if(!$begin) $begin=0;
// Verander hier tabel in je eigen tabel
// Deze pakt alleen de eerste 5 rijen uit de tabel. Je kan dus 5 veranderen door het aantal wat je op 1 pagina wilt hebben
$result = mysql_query("SELECT * FROM gastenboek LIMIT $begin,5");
// Verander hier tabel in je eigen tabel
// Deze query is alleen nodig om de rijen te tellen
$result2 = mysql_query("SELECT * FROM gastenboek");
// zet hier alle codes om het uit de database te halen in een while loop.
// Hier begint een if-else constructie zonder else.
// Als $begin groter is dan het aantal rijen, laat de link vorige zien, anders geen link.
if ($begin>$rijen){
?>
<a href="<?php $php_self ?>?rijen =<?php echo $begin-5; ?>">
< Vorige</a>
<?php
// sluit de if af
}
?>
|
<?php
$rijen=mysql_num_rows($result2);
if($begin+5<$rijen){
?>
<a href="<?php $php_self?>?rijen=<?php echo $rijen+5 ;?>">
Volgende ></a>
<?php
// sluit de while loop af die je er nog ff zelf in moet zetten
}
?>
// verbinding maken
include('config.php');
// Kijkt of $begin al aangegeven is. Zoniet, dan is $begin 0. Dus begint hij de tabel uit te lezen vanaf rij $begin.
if(!$begin) $begin=0;
// Verander hier tabel in je eigen tabel
// Deze pakt alleen de eerste 5 rijen uit de tabel. Je kan dus 5 veranderen door het aantal wat je op 1 pagina wilt hebben
$result = mysql_query("SELECT * FROM gastenboek LIMIT $begin,5");
// Verander hier tabel in je eigen tabel
// Deze query is alleen nodig om de rijen te tellen
$result2 = mysql_query("SELECT * FROM gastenboek");
// zet hier alle codes om het uit de database te halen in een while loop.
// Hier begint een if-else constructie zonder else.
// Als $begin groter is dan het aantal rijen, laat de link vorige zien, anders geen link.
if ($begin>$rijen){
?>
<a href="<?php $php_self ?>?rijen =<?php echo $begin-5; ?>">
< Vorige</a>
<?php
// sluit de if af
}
?>
|
<?php
$rijen=mysql_num_rows($result2);
if($begin+5<$rijen){
?>
<a href="<?php $php_self?>?rijen=<?php echo $rijen+5 ;?>">
Volgende ></a>
<?php
// sluit de while loop af die je er nog ff zelf in moet zetten
}
?>
dit script voor een voorbeeld.
Script heb ik ooit lang geleden eens gemaakt. Het is absoluut niet netjes gescript, maar het idee is duidelijk.
Zie Script heb ik ooit lang geleden eens gemaakt. Het is absoluut niet netjes gescript, maar het idee is duidelijk.
script. Deze is eenvoudig te porten naar MySQL, even de connection-string aanpassen en het standaard schema verwijderen en klaar ben je. De SQL is verder hetzelfde, MySQL is zo slim geweest om de OFFSET van pgSQL te implementeren.
Hier een recent kijk ik include hem.
er staat welvolgende 1 2. enzovoort.
MAAR hij showt alle berichten
Gebruik je wel een LIMIT nu?