paging van een readdir() script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick

nick

04/01/2010 00:25:00
Quote Anchor link
Hallo ik ben bezig met een foto album waarbij je alleen maar de foto's in een map hoeft te plaatsen, maar nu heb ik er 250 foto's in en loopt de hele website vast. Dit komt, natuurlijk, door het feit dat ik te veel data in een keer wil inladen. Maar nu heb ik geprobeerd om de foto's onder te verdelen door paging te gerbruiken. Alleen nu weet ik wel hoe ik het moet gebruiken als ik een mySQL tabel uit lees maar niet bij een readdir() script. Kan iemand mij helpen???
dit is mijn script
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if ($handle = opendir('foto')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "<a href='foto/$file' rel='lightbox[foto]'><img src='foto/$file' width='150px' height='150px;' alt='$file'/></a>&nbsp;&nbsp;";
        }
    }

        closedir($handle);
}

?>
 
PHP hulp

PHP hulp

04/12/2024 20:11:58
 
Bas Php

Bas Php

04/01/2010 00:31:00
 
Leon

Leon

04/01/2010 00:33:00
Quote Anchor link
Ik weet niet of je het wil, maar zelf heb ik eens een siteje ontworpen voor een fotograaf, en toen kwam ik hetzelfde probleem tegen. Daar heb ik toen het volgende op gevonden:
JD Gallery
Eerst dit maar even, om niet met de eer te gaan strijken, deze gast is een genie!
Deze slideshow geeft alle tumbs weer, maar zelfs met 10000 foto's doet hij het nog goed (hij begint met afspelen met de foto's die hij al heeft geladen, hij doet 2 dingen tegelijkertijd)

even een korte beschrijving:

1. Download de .zip van de site (http://github.com/jon1012/smoothgallery/zipball/master)
2. in de header:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
<script src="scripts/mootools.v1.11.js" type="text/javascript"></script>

<script src="scripts/jd.gallery.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/jd.gallery.css" type="text/css" media="screen" />
?>

En op de pagina zelf:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
<script src="scripts/jd.gallery.set.js" type="text/javascript"></script>

 ?>


En dan bij elke foto die erop moet:
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
<?
<div id="mijn gallerij">
  <
div id="gallerij" class="galleryElement">
    <
h2>Naam gallerij</h2>
    <
div class="imageElement">
      <
h3>Title Foto1</h3>
      <
p>Beschrijving</p>
      <
a href="image URL" title="open image" class="open"></a>
      <
img src="URL foto1" class="full" />
      <
img src="URL Thumb1" class="thumbnail" />
    <
/div>
    <
div class="imageElement">
      <
h3>Title Foto2</h3>
      <
p>Beschrijving</p>
      <
a href="image URL" title="open image" class="open"></a>
      <
img src="URL foto1" class="full" />
      <
img src="URL foto2" class="thumbnail" />
    <
/div>
  <
/div>
 <
/div>
<
/div>
?>


Dit zorgt echt voor een daverend resultaat :P

PS ik weet dat er waarschijnlijk al 5 voor me zijn geweest maar toen ik begin was ik de 1e :P

Edit:
valt dus wel mee...

[EDIT2] dit was ik nog vergeten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
<script type="text/javascript">
function
startGallery() {
var
myGallerySet = new gallerySet($('myGallerySet'), {
timed: false
});
}

window.addEvent('domready', startGallery);
</script>

?>

Dit om de gallerij te op te roepen..
Gewijzigd op 01/01/1970 01:00:00 door Leon
 
Bas Php

Bas Php

04/01/2010 00:36:00
Quote Anchor link
// off-topic \\
ja meestal is het rustig om half 1:P
 
Leon

Leon

04/01/2010 00:48:00
Quote Anchor link
@bas off-topiciger
Blijkt wel weer :P (nu weer verder met de vraag)

BTW Ik heb geen id wat je kan met readdir() dus eigenlijk moet ik me er niet mee bemoeien :P
 
Nick

nick

04/01/2010 11:05:00
Quote Anchor link
Leon schreef op 04.01.2010 00:48:
@bas off-topiciger
Blijkt wel weer :P (nu weer verder met de vraag)

BTW Ik heb geen id wat je kan met readdir() dus eigenlijk moet ik me er niet mee bemoeien :P


Met readdir() kan je een directory uitlezen, oftewel een map waarin je zoals ik bijvoorbeeld foto's kan zetten zo hoef je niet eerst alle foto's in je script te zetten maar doet php dat voor je
 
Master Mz

Master Mz

04/08/2010 05:55:43
Quote Anchor link
Hier heb je een super handig script waar bij hij alle fotos in het bestand map (Fotos) leest.
Hij zorgt ervoor dat je 3x3 fotos laat zien per pagina dit kun je aan passen kijk zelf maar even.

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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
$dir
= 'fotos/';  
$handle = opendir($dir);
while ($file = readdir($handle))  
{
  
        if($file == '.' OR $file == '..')
                continue;  
        else  
                $result_array[]=$file;  
}
  
closedir($handle);  
array_multisort($result_array, SORT_DESC);  
$rows = 3;  
$cols = 3;  
if(isset($_GET['page']))  
{
  
        $page = $_GET['page'];  
}
  
else  
{  
        $page = 0;  
}
  
$num_pics = count($result_array);  
$cells = $rows * $cols;  
$pages = ceil($num_pics / ($rows * $cols));  
$num_pages = $pages - 1;  
$output = array();  
$slices = array();  
$push = 0;  
$showpage = $page + 1;  
for($k=0;$k<$pages;$k++)  
{
  
        array_push($slices, $push);  
        $push = $push + $cells;  
}
  
for($k=0;$k<$pages;$k++)  
{
  
        if($page == key($slices))  
        {
  
                $output = array_slice($result_array, current($slices), $cells);  
        }
  
        next($slices);  
}
  
reset($output);  
print "<center>\n<table width='*' border='1' bordercolor='#fff' cellspacing='0' cellpadding='10'>\n";
for($i=0;$i<$rows;$i++)  
{
  
        print "\t<tr>\n";  
        for($j=0;$j<$cols;$j++)  
        {
  
                if(current($output) != false)  
                {
  
                        $pic = current($output);  

                        $size = getimagesize($dir.$pic);  
                        $height_button = $size[1] + 150;  
                        $value = current($output);  
                        print "\t\t<td width='75' height='75' align=center>\n\t\t\t<a href=$dir$value>\n\t\t\t\t<img width='75' height='75' border='0' src='$dir$value'>\n\t\t\t</a>\n\t\t</td>\n\n";
                        next($output);  
                }
  
                else  
                {  
                        print "\t\t<td width='100' height='100' align='center'>&nbsp;</td>\n";
                }  
        }
  
        print "\t</tr>\n";  
}
  
$ref = $_SERVER['PHP_SELF'];  
print "</table>\n";  
        if($num_pages == '0')  
        {
  
                print "<span>[ </span>";  
                print "vorige";  
                print "<span> ] </span>";  
                print "<span> [ </span>";  
                print "volgende";  
                print "<span> ]</span>";  
        }
  
        elseif(($page == '0')||($page == ''))  
        {
  
                $next = $page + 1;  
                print "<span>[ </span>";  
                print "vorige";  
                print "<span> ] </span>";  
                $page_link = 1;  
                for($k=0;$k<$pages;$k++)  
                {
  
                        if($k == $page)  
                        {
  
                                print "$page_link&nbsp;";  
                        }
  
                        else  
                        {  
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
                        }
  
                        $page_link++;  
                }
  
                print "<span> [ </span>";  
                print "<a href='$ref?page=$next'>volgende</a>";  
                print "<span> ]</span>";  
        }
  
        elseif($page == $num_pages)  
        {
  
                $prev = $page - 1;  
                print "<span>[ </span>";  
                print "<a href='$ref?page=$prev'>vorige</a>";  
                print "<span> ] </span>";  
                $page_link = 1;  
                for($k=0;$k<$pages;$k++)  
                {
  
                        if($k == $page)  
                        {
  
                                print "$page_link&nbsp;";  
                        }
  
                        else  
                        {  
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
                        }
  
                        $page_link++;  
                }
  
                print "<span> [ </span>";  
                print "volgende";  
                print "<span> ]</span>";  
        }
  
        else  
        {  
                $next = $page + 1;  
                $prev = $page - 1;  
                print "<span>[ </span>";  
                print "<a href='$ref?page=$prev'>vorige</a>";  
                print "<span> ] </span>";  
                $page_link = 1;  
                for($k=0;$k<$pages;$k++)  
                {
  
                        if($k == $page)  
                        {
  
                                print "$page_link&nbsp;";  
                        }
  
                        else  
                        {  
                                print "<a href='$ref?page=$k'>$page_link</a>&nbsp;";
                        }
  
                        $page_link++;  
                }
  

                print "<span> [ </span>";  
                print "<a href='$ref?page=$next'>volgende</a>";  
                print "<span> ]</span>";  
        }
  
print "<br><br>";  
print "Pagina: $showpage van $pages";  
?>
 



Overzicht Reageren

 
 

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.