paginanummering
Ik heb op mijn site ook een fotoalbum, maar die werkt niet op een databasesysteem, kan ik daar op 1 of andere manier ook zeggen: na x aantal fotos -> nieuwe pagina. Of kan dat alleen maar als je met databases werkt?
mod-edit::
Bumpen
Twee of meer keer achter elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.
Twee of meer keer achter elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.
Gewijzigd op 01/01/1970 01:00:00 door Robin
je maakt een $_GET['page'] of wat dan ook en berekent dan hetvolgende:
$berichten = $_GET['page'] * 10;
dan neem je vanaf het ID van $berichten berichten uit je db met LIMIT 10 berichten...
verder zet je onderaan je script weer een for loopje, hier werk je dan met num_rows en deze deel je door 10 (naar boven afgerond)...
ik heb wel een voorbeeld...als je er echt niet uit komt, laat me maar iets weten!
ja, met een database kan ik het ook, dit is al allemaal in orde. Maar ik heb een "script" of wat dan ook nodig die page-numbering toelaat zonder het gebruik van databases. of is dit niet mogelijk?
for($o=0; $o<10 (fotos per pagina); $o++) { BLABLA }
en onderaan ook weer met een loopje...
1) het aantal objecten per pagina (10 in jouw geval)
2) het totale aantal objecten (dit kun je berekenen door de images map uit te lezen)
3) het object waarmee de huidige pagina moet beginnen (deze kun je via een link in de url zetten, waarna hij als GET variabele beschikbaar wordt)
Ik vond nog een oud voorbeeld. Deze werkt niet met paginering, maar met vorige/volgende:
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
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
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Jan Koehoorn | Image Gallery</title>
</head>
<body>
<div id="container">
<h1>Image Gallery</h1>
<?php
$imgs = glob ('images/*.jpg');
$aantal = count ($imgs);
$cur = (isset ($_GET['cur'])) ? ($_GET['cur']) : (0);
$vorige = $cur - 1;
$volgende = $cur + 1;
if ($vorige < 0) $vorige = $aantal - 1;
if ($volgende > $aantal - 1) $volgende = 0;
echo '<p>' . ($cur + 1) . ' van ' . $aantal;
echo ' <a href="?cur=' . $vorige . '" title="">vorige</a> | <a href="?cur=' . $volgende . '" title="">volgende</a></p>';
echo '<h2>File: ' . basename ($imgs[$cur]) . '</h2>';
echo '<img src="' . $imgs[$cur] . '">';
echo '<h2>EXIF data:</h2>';
echo '<pre>' . print_r (exif_read_data ($imgs[$cur]), true) . '</pre>';
echo '<p></p>';
?>
</div>
</body>
</html>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Jan Koehoorn | Image Gallery</title>
</head>
<body>
<div id="container">
<h1>Image Gallery</h1>
<?php
$imgs = glob ('images/*.jpg');
$aantal = count ($imgs);
$cur = (isset ($_GET['cur'])) ? ($_GET['cur']) : (0);
$vorige = $cur - 1;
$volgende = $cur + 1;
if ($vorige < 0) $vorige = $aantal - 1;
if ($volgende > $aantal - 1) $volgende = 0;
echo '<p>' . ($cur + 1) . ' van ' . $aantal;
echo ' <a href="?cur=' . $vorige . '" title="">vorige</a> | <a href="?cur=' . $volgende . '" title="">volgende</a></p>';
echo '<h2>File: ' . basename ($imgs[$cur]) . '</h2>';
echo '<img src="' . $imgs[$cur] . '">';
echo '<h2>EXIF data:</h2>';
echo '<pre>' . print_r (exif_read_data ($imgs[$cur]), true) . '</pre>';
echo '<p></p>';
?>
</div>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
wat bedoel je met onderaan ook weer een loopje?
@ jan Koehoorn
staat hiervan ergens een voorbeeld online? Ik heb al redelijk veel paginas afgeschuimd, maar ik vind er alleen met PHP+SQL
edit: ik zal eens proberen met jouw stukje code! bedankt
Gewijzigd op 01/01/1970 01:00:00 door Robin
zoals jan zei: met $_GET dan ook weer werken om je beginwaarden in te stellen...
Opslaan als text heeft veel meer limitaties over het algemeen.
1) waarom "beter met SQL"?
2) wat zijn de limitaties van "opslaan met text" en wat heeft dat met dit topic te maken?
men fotoalbum werkt niet met sql... voor de derde keer
edit: jan, ik snap dat je het totaal aantal elementen moet berekenen, het aantal elementen per pagina moet bepalen, het 1ste en laaste element van een beplaade paginamoet bepalen, maar ik snap niet goed hoe je dan de juiste elementen afbeeldt...
Gewijzigd op 01/01/1970 01:00:00 door Robin
ik heb hetzelfde probleem, weet iemand hier raad mee?
ik ben nu niet thuis dus ik kan je helaas niets tonen
Gewijzigd op 01/01/1970 01:00:00 door Robin
Zal ik zeker doen...ik probeer vanmiddag nog ;-)
oké bedankt!
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
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
<?PHP
//FUNCTIE OM FOTOS TE TONEN
function show($map = "/",$l,$DwS)
{
$g = 1;
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(!is_dir($map . $file)) {
//Photocount in the directory
$handle = opendir($map); //directory
$q = 0;
while(false !== ($b = readdir($handle))) {
if(!is_dir($b) && $b != "." && $b != "..") {
$q++;
}
}
closedir($handle);
If($g != $l && $g <= $q) { $g++; }
else {
$pl = $l-1;
$nl = $l+1;
If($nl > ($q-1)) {
$nl = 1;
}
if($pl < 1) {
$pl = ($q-1);
}
echo '<table><tr>';
echo '<img src='.$map . $file .'> <br />';
echo '<td width=33% align=left><a href=fotos.php?foto='.$pl.'&album2='.$DwS.'>Vorige</a></td>';
echo '<td width=33% align=center><a href=fotos.php?album='.$DwS.'>Terug</a></td>';
echo '<td width=33% align=right><a href=fotos.php?foto='.$nl.'&album2='.$DwS.'>Volgende</a></td>';
echo '</tr></table>';
$g++;
/* einde foto's naast elkaar */
}
}
}
}
}
@closedir($dir);
}
?>
//FUNCTIE OM FOTOS TE TONEN
function show($map = "/",$l,$DwS)
{
$g = 1;
if(@$dir = opendir($map))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(!is_dir($map . $file)) {
//Photocount in the directory
$handle = opendir($map); //directory
$q = 0;
while(false !== ($b = readdir($handle))) {
if(!is_dir($b) && $b != "." && $b != "..") {
$q++;
}
}
closedir($handle);
If($g != $l && $g <= $q) { $g++; }
else {
$pl = $l-1;
$nl = $l+1;
If($nl > ($q-1)) {
$nl = 1;
}
if($pl < 1) {
$pl = ($q-1);
}
echo '<table><tr>';
echo '<img src='.$map . $file .'> <br />';
echo '<td width=33% align=left><a href=fotos.php?foto='.$pl.'&album2='.$DwS.'>Vorige</a></td>';
echo '<td width=33% align=center><a href=fotos.php?album='.$DwS.'>Terug</a></td>';
echo '<td width=33% align=right><a href=fotos.php?foto='.$nl.'&album2='.$DwS.'>Volgende</a></td>';
echo '</tr></table>';
$g++;
/* einde foto's naast elkaar */
}
}
}
}
}
@closedir($dir);
}
?>
dit is iets wat ik had...het is wel met volgende en vorige maar dat kan je makkelijk veranderen met die pagina's...daar kom je wel uit geloof k
Gewijzigd op 01/01/1970 01:00:00 door Tikkes C
toch bedankt voor de moeite!
sorry!
edit: ik had een fucked up scriptje gevonden, maar het heeft me wel goed op weg geholpen! ik heb er dit van gemaakt met de hulp van de originele scripter:
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
67
68
69
70
71
72
73
74
75
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
67
68
69
70
71
72
73
74
75
<?php
if(!empty($_GET["evenement"])){
$evenement = $_GET["evenement"];
$naam = $_GET["naam"];
//dir naar de image
$dir = "pics/".$evenement."/";
//Extensies die je wil laten zien
$extensions = "jpeg,jpg,JPG";
//Aantal images per pagina
$imagesPerPage = 9;
//bepaal de $page variabele
if(!isset($_GET['page'])){
$page = 1;
}else{
$page = $_GET['page'];
}
//Steek alle images in een array
$images = glob($dir."*.{".$extensions."}", GLOB_BRACE);
//het aantal images tellen
$totalImages = count($images);
//het totaal aantal paginas
$totalPages = ceil($totalImages / $imagesPerPage);
//Zorg dat de pagina waarop je bent niet groter is dan het totaal aantal pagina's
if($page > $totalPages){
$page = $totalPages;
}else{
}
//zoeken waar je het laden moet starten
$from = ($page * $imagesPerPage) - $imagesPerPage;
//loop
echo "<h2>".$naam."</h2>";
for($i = $from; $i < ($from + $imagesPerPage); $i++){
//zolang i kleinder blijft dan het totaal aantal images
if($i < $totalImages){
//images tonen
echo "<div class=\"img\">";
echo "<a href='{$images[$i]}' rel=\"lightbox[".$evenement."]\"><img src ='{$images[$i]}' border = \"0\"/ width=\"110\" height=\"90\" /></a>";
echo "</div>";
}else{
}
}
//De paginanummers tonen
for($p = 1; $p <= $totalPages; $p++){
if($p == $page){
$tmp_pages[] = "<font color=#000000><b><u>{$p}</u></b></font>";
}else{
$tmp_pages[] = "<a href = \"pics.php?evenement=".$evenement."&naam=".$naam."&page={$p}\">{$p}</a>";
}
}
//Tonen paginas met hyphen.
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width = \"170px\">";
echo "<td colspan = \"2\" align = \"center\"><br />". implode(" - ", $tmp_pages)."</td>";
echo "</tr>";
}else{
echo "<i>Kies een foto-album</i>";
}
?>
if(!empty($_GET["evenement"])){
$evenement = $_GET["evenement"];
$naam = $_GET["naam"];
//dir naar de image
$dir = "pics/".$evenement."/";
//Extensies die je wil laten zien
$extensions = "jpeg,jpg,JPG";
//Aantal images per pagina
$imagesPerPage = 9;
//bepaal de $page variabele
if(!isset($_GET['page'])){
$page = 1;
}else{
$page = $_GET['page'];
}
//Steek alle images in een array
$images = glob($dir."*.{".$extensions."}", GLOB_BRACE);
//het aantal images tellen
$totalImages = count($images);
//het totaal aantal paginas
$totalPages = ceil($totalImages / $imagesPerPage);
//Zorg dat de pagina waarop je bent niet groter is dan het totaal aantal pagina's
if($page > $totalPages){
$page = $totalPages;
}else{
}
//zoeken waar je het laden moet starten
$from = ($page * $imagesPerPage) - $imagesPerPage;
//loop
echo "<h2>".$naam."</h2>";
for($i = $from; $i < ($from + $imagesPerPage); $i++){
//zolang i kleinder blijft dan het totaal aantal images
if($i < $totalImages){
//images tonen
echo "<div class=\"img\">";
echo "<a href='{$images[$i]}' rel=\"lightbox[".$evenement."]\"><img src ='{$images[$i]}' border = \"0\"/ width=\"110\" height=\"90\" /></a>";
echo "</div>";
}else{
}
}
//De paginanummers tonen
for($p = 1; $p <= $totalPages; $p++){
if($p == $page){
$tmp_pages[] = "<font color=#000000><b><u>{$p}</u></b></font>";
}else{
$tmp_pages[] = "<a href = \"pics.php?evenement=".$evenement."&naam=".$naam."&page={$p}\">{$p}</a>";
}
}
//Tonen paginas met hyphen.
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width = \"170px\">";
echo "<td colspan = \"2\" align = \"center\"><br />". implode(" - ", $tmp_pages)."</td>";
echo "</tr>";
}else{
echo "<i>Kies een foto-album</i>";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Robin