PHP MYSQL paging in een tabel
Een makkelijke methode om paging aan je site toe te voegen zonder paginanummering!
Gesponsorde koppelingen
Inhoudsopgave
23 reacties op 'PHP MYSQL paging in een tabel'
Gesponsorde koppelingen
Waarom gebruik je javascript om iemand naar een andere pagina te sturen?
Als je niet met ajax bezig bent kan je nog beter van javascript afblijven, als een bezoeker geen javascript heeft aanstaan kan hij niet eens naar een andere pagina gaan.
Je kan hiervoor beter <a> tags gebruiken.
Was er niet al zo'n script / tutorial hier ergens?
Als je niet met ajax bezig bent kan je nog beter van javascript afblijven, als een bezoeker geen javascript heeft aanstaan kan hij niet eens naar een andere pagina gaan.
Je kan hiervoor beter <a> tags gebruiken.
Was er niet al zo'n script / tutorial hier ergens?
Mensen zonder Javascript?
-- Jelmer meldt zich: PSP (gedeeltelijk), PDA (hopeloos)
-- Google meldt zich: Sorry, nu kan ik je andere pagina's niet indexeren. Geen zoekresultaten voor jouw >:)
-- andere zoekmachines volgen...
Je zegt dat dit de altenatieve methode is. Wat is dan het andere alternatief? Want dit lijkt aardig op wat al die andere pagina-scripts ook al doen. Als je nu kwam met de eeuwig lange pagina of een aparte manier van pagina's met elkaar in verband brengen...
-- Jelmer meldt zich: PSP (gedeeltelijk), PDA (hopeloos)
-- Google meldt zich: Sorry, nu kan ik je andere pagina's niet indexeren. Geen zoekresultaten voor jouw >:)
-- andere zoekmachines volgen...
Je zegt dat dit de altenatieve methode is. Wat is dan het andere alternatief? Want dit lijkt aardig op wat al die andere pagina-scripts ook al doen. Als je nu kwam met de eeuwig lange pagina of een aparte manier van pagina's met elkaar in verband brengen...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query1 = "SELECT COUNT(*) FROM tabel";
$resultaat1 = mysql_query($query1);
if($row1 = mysql_fetch_row($resultaat1))
{
if($row1[0] > ($pagina + 10))
....[/code]
Dat kan wel makkelijker. Omdat je een COUNT selecteert, weet je zeker dat je 1 rij terug krijgt, met 1 veld, dus die kan je mteen ophalen, zonder checks:
[code][code]<?php
$iRows = mysql_result(mysql_query("SELECT COUNT(1) FROM tabel;"),0);
?>
$query1 = "SELECT COUNT(*) FROM tabel";
$resultaat1 = mysql_query($query1);
if($row1 = mysql_fetch_row($resultaat1))
{
if($row1[0] > ($pagina + 10))
....[/code]
Dat kan wel makkelijker. Omdat je een COUNT selecteert, weet je zeker dat je 1 rij terug krijgt, met 1 veld, dus die kan je mteen ophalen, zonder checks:
[code][code]<?php
$iRows = mysql_result(mysql_query("SELECT COUNT(1) FROM tabel;"),0);
?>
Ik vind het niet zo netjes, gewoon + en - 10.
Maak er dan 1 waarbij je nog tussen 3 of 4 paginas ervoor en ernaa kan kiezen, Naar de eerste en de laatste kan gaan EN dat als je een waarde lager dan pagina =0 of hoger dan pagina = (max aantal paginas) gaat, dat je naar de eerste of laatste pagina verwijzen word (net welke je doet)
Ik vind dit het niet waard om in de database te zetten als ik eerijk mag zijn.
Maak er dan 1 waarbij je nog tussen 3 of 4 paginas ervoor en ernaa kan kiezen, Naar de eerste en de laatste kan gaan EN dat als je een waarde lager dan pagina =0 of hoger dan pagina = (max aantal paginas) gaat, dat je naar de eerste of laatste pagina verwijzen word (net welke je doet)
Ik vind dit het niet waard om in de database te zetten als ik eerijk mag zijn.
"maar het is een tutorial. Een stuk om iets van te leren, deze is niet bedoeld voor geavanceerde programmeurs zoals jullie."
Zorg dan op zn minst dat "N00bs" er ook wat aan hebben. Gebruik de juiste manier van printen (dus niet print, maar echo), check alles, maak het uitgebreider. Als ik elk beginners scriptje zou plaatsen dat ik maakt, zou het zo vol zijn...
Zorg dan op zn minst dat "N00bs" er ook wat aan hebben. Gebruik de juiste manier van printen (dus niet print, maar echo), check alles, maak het uitgebreider. Als ik elk beginners scriptje zou plaatsen dat ik maakt, zou het zo vol zijn...
Ik ben het met Leon eens. Van deze tutorial kun je wel e.e.a. leren. En je kunt niet zeggen dat je men het zo fout leert, want dan kan je 80% van de scripts en tutorials van gerespecteerde members van PHPhulp ook verwijderen.
Print is een normale functie. Echo is iets sneller maar dat is eigenlijk verwaarloosbaar.
@iltar
Ik vind je reacties niet erg sportief. Ik had jou bijvoorbeeld ook kunnen afzeiken bij jouw script, http://www.phphulp.nl/php/scripts/7/1031/, maar dat heb ik niet gedaan, ik heb een nuttige toevoeging gedaan. Dat is toch waar we naar streven als community.
Met zeer vriendelijke groet,
PHPerik de kwaadaardige moderator
Print is een normale functie. Echo is iets sneller maar dat is eigenlijk verwaarloosbaar.
@iltar
Ik vind je reacties niet erg sportief. Ik had jou bijvoorbeeld ook kunnen afzeiken bij jouw script, http://www.phphulp.nl/php/scripts/7/1031/, maar dat heb ik niet gedaan, ik heb een nuttige toevoeging gedaan. Dat is toch waar we naar streven als community.
Met zeer vriendelijke groet,
PHPerik de kwaadaardige moderator
Ik ben niet aan het afzeiken. Ik zie het alleen als een te simpel script, hij zou er nog wat extra dingen aan moeten maken.
Bijvoorbeeld
En kijken of er resultaat is:
Bijvoorbeeld
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_GET['pagina']) and is_numeric($_GET['pagina']) and $_GET['pagina'] != '' and $_GET['pagina'] > 0)
{
// goed
}
else
{
header('location: ?pagina=1');
// ook goed
}
?>
if(isset($_GET['pagina']) and is_numeric($_GET['pagina']) and $_GET['pagina'] != '' and $_GET['pagina'] > 0)
{
// goed
}
else
{
header('location: ?pagina=1');
// ook goed
}
?>
En kijken of er resultaat is:
deze fout krijg ik niet, ik kreeg wel een fout in rgl. 4
verander het in:
in totaal ziet mijn code er nu zo uit:
het werkt op deze manier
verander het in:
Code (php)
1
2
3
2
3
$query1 = "SELECT COUNT(*) FROM tabel";
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
in totaal ziet mijn code er nu zo uit:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<html>
<?php
include("verbinding.php");
$query1 = "SELECT COUNT(*) FROM tabel";
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
if($row1[0] > ($pagina + 10))
{
$paginaup = $pagina + 10;
}
else
{
$paginaup = $pagina;
}
if($pagina >= 10)
{
$paginadown = $pagina - 10;
}
else
{
$paginadown = 0;
}
?>
<body bgcolor="black">
<table width="100%" bgcolor="dimgray" border="1">
<tr>
<td bgcolor="darkslategray"><font color="aqua">ID-nummer</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap1</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap2</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap3</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap4</td>
</tr>
<?php
if($pagina=="")
{
$query2 = "SELECT * FROM tabel LIMIT 0, 10";
}
else
{
$query2 = "SELECT * FROM tabel LIMIT $pagina, 10";
}
$resultaat2 = mysql_query($query2);
while($row2 = mysql_fetch_row($resultaat2))
{
?>
<tr>
<td><font color="aqua"><?php print($row2[0]); ?></td>
<td><font color="aqua"><?php print($row2[1]); ?></td>
<td><font color="aqua"><?php print($row2[2]); ?></td>
<td><font color="aqua"><?php print($row2[3]); ?></td>
<td><font color="aqua"><?php print($row2[4]); ?></td>
</tr>
<?php
}
?>
</table>
<table bgcolor="black" width="100%" border="1">
<tr bgcolor="black">
<td colspan = 5>
<a href="http://www.adres.nl/index.php?pagina=<?php print($paginadown); ?>"><img border="0" align="left" src="links.bmp"></a>
<a href="http://www.adres.nl/index.php?pagina=<?php print($paginaup); ?>"><img border="0" align="right" src="rechts.bmp"></a>
</td>
</tr>
</table>
</body>
</html>
<?php
include("verbinding.php");
$query1 = "SELECT COUNT(*) FROM tabel";
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
if($row1[0] > ($pagina + 10))
{
$paginaup = $pagina + 10;
}
else
{
$paginaup = $pagina;
}
if($pagina >= 10)
{
$paginadown = $pagina - 10;
}
else
{
$paginadown = 0;
}
?>
<body bgcolor="black">
<table width="100%" bgcolor="dimgray" border="1">
<tr>
<td bgcolor="darkslategray"><font color="aqua">ID-nummer</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap1</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap2</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap3</td>
<td bgcolor="darkslategray"><font color="aqua">eigenschap4</td>
</tr>
<?php
if($pagina=="")
{
$query2 = "SELECT * FROM tabel LIMIT 0, 10";
}
else
{
$query2 = "SELECT * FROM tabel LIMIT $pagina, 10";
}
$resultaat2 = mysql_query($query2);
while($row2 = mysql_fetch_row($resultaat2))
{
?>
<tr>
<td><font color="aqua"><?php print($row2[0]); ?></td>
<td><font color="aqua"><?php print($row2[1]); ?></td>
<td><font color="aqua"><?php print($row2[2]); ?></td>
<td><font color="aqua"><?php print($row2[3]); ?></td>
<td><font color="aqua"><?php print($row2[4]); ?></td>
</tr>
<?php
}
?>
</table>
<table bgcolor="black" width="100%" border="1">
<tr bgcolor="black">
<td colspan = 5>
<a href="http://www.adres.nl/index.php?pagina=<?php print($paginadown); ?>"><img border="0" align="left" src="links.bmp"></a>
<a href="http://www.adres.nl/index.php?pagina=<?php print($paginaup); ?>"><img border="0" align="right" src="rechts.bmp"></a>
</td>
</tr>
</table>
</body>
</html>
het werkt op deze manier
Als het voor N00B's bedoeld is, moet het ook volledig foutloos zijn.
Als je PHP ook alle notice's laat zien krijg je namelijk elke keer als er geen $_GET['pagina'] is meegegeven, een error.
Dat is precies zoals je zelf ook zegt:
Verder doe je dit:
Hij check of $pagina LEEG is, niet of hij bestaat.
Net zoiets:
$pagina zal echter ook nooit bestaan, $pagina is in werkelijkheid namelijk iets anders dan $_GET['pagina'].
Meer daarover hier: http://nl2.php.net/manual/nl/security.globals.php
http://www.phphulp.nl/php/faq/#10 zegt het zelfde:
Deze reactie zou misschien vervelend aan kunnen komen, maar je kunt niet van je fouten leren, als je niet weet wat de fout(en) is/zijn!
Verder vind ik het goed / duidelijk / netjes gescript.
Laterrr!
Als je PHP ook alle notice's laat zien krijg je namelijk elke keer als er geen $_GET['pagina'] is meegegeven, een error.
Dat is precies zoals je zelf ook zegt:
Quote:
Als je voor de eerste keer op de site komt is $pagina zeer waarschijnlijk 'undefined' dus begin je bij de eerste record.
Verder doe je dit:
Code (php)
Hij check of $pagina LEEG is, niet of hij bestaat.
Net zoiets:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
if($row1[0] > ($pagina + 10))
{
$paginaup = $pagina + 10;
}
...
?>
$resultaat1 = mysql_query($query1);
$row1 = mysql_fetch_row($resultaat1);
if($row1[0] > ($pagina + 10))
{
$paginaup = $pagina + 10;
}
...
?>
$pagina zal echter ook nooit bestaan, $pagina is in werkelijkheid namelijk iets anders dan $_GET['pagina'].
Meer daarover hier: http://nl2.php.net/manual/nl/security.globals.php
http://www.phphulp.nl/php/faq/#10 zegt het zelfde:
Quote:
Notice: Undefined variable
Deze error geeft aan dat een variable niet gedefineerd is of bekend is bij de server. Je kan het eenvoudig oplossen door boven elke script de volgende code neer te zetten.
error_reporting(E_ALL ^ E_NOTICE);
?>
De echte oplossing is alle variable eerst te controleren met de functie isset of empty
Deze error geeft aan dat een variable niet gedefineerd is of bekend is bij de server. Je kan het eenvoudig oplossen door boven elke script de volgende code neer te zetten.
error_reporting(E_ALL ^ E_NOTICE);
?>
De echte oplossing is alle variable eerst te controleren met de functie isset of empty
Deze reactie zou misschien vervelend aan kunnen komen, maar je kunt niet van je fouten leren, als je niet weet wat de fout(en) is/zijn!
Verder vind ik het goed / duidelijk / netjes gescript.
Laterrr!
Waarom een onclick handler op een img element als je gewoon een img element kunt plaatsen in een a element? (Waarom doe je moeilijk als het ook makkelijk en zonder javascript kan).
Ik bezoek een pagina (met dank aan NoScript) altijd met Javascript uitgeschakeld, en pas als ik het nodig vind schakel ik het in, nu zou je kunnen overwegen om mij, Google, en Jelmer te pesten. Maar ongeveer 10% van de bezoekers surft met Javascript uitgeschakeld / een browser die Javascript niet ondersteund.
Ik bezoek een pagina (met dank aan NoScript) altijd met Javascript uitgeschakeld, en pas als ik het nodig vind schakel ik het in, nu zou je kunnen overwegen om mij, Google, en Jelmer te pesten. Maar ongeveer 10% van de bezoekers surft met Javascript uitgeschakeld / een browser die Javascript niet ondersteund.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Leon- 6 jaar geleden
- 1.956 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP tutorials opties
- Data verwerking
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu