Jump to content

Pagination WITHOUT SQL


HerrPNut

Recommended Posts

Hello to everyone!

I am setting up a site in php and I came across a problem.

I made a photo-album without SQL, only php.

At the moment all the photos are displayed on 1 page, but I tought it would be better with pagination (after 12 photos)

Is it possible without SQL? ifzo how can i do it?

 

cheers Robin

Link to comment
https://forums.phpfreaks.com/topic/129381-pagination-without-sql/
Share on other sites

of course its possible, but I for one, haven't attempted it without SQL before. I would imagine the best way to keep track of everything would be to use Session variables, and GET's as if it was SQL based pagination.

 

Post your script.

Sure its possible. Say you have a folder full of images that you want to paginate. Here is a script I have that does just that. :)

 

<?php

//The directory to your images folder, with trailing slash
$dir = "images/";

//Set the extensions you want to load, seperate by a comma.
$extensions = "jpeg,jpg";

//Set the number of images you want to display per page
$imagesPerPage = 1;

//Set the $page variable
if(!isset($_GET['page'])){
$page = 1;
}else{
$page = $_GET['page'];
}

//Load all images into an array
$images = glob($dir."*.{".$extensions."}", GLOB_BRACE);

//Count the number of images
$totalImages = count($images);

//Get the total pages
$totalPages = ceil($totalImages / $imagesPerPage);

//Make sure the page you are on is not greater then the total pages available.
if($page > $totalPages){
//Set the currnet page to the total pages.
$page = $totalPages;
}

//Now find where to start the loading from
$from = ($page * $imagesPerPage) - $imagesPerPage;

//Now start looping
for($i = $from; $i < ($from + $imagesPerPage); $i++){
//We need to make sure that its within the range of totalImages.
if($i < $totalImages){
	//Now we can display the image!
	echo "<img src='{$images[$i]}' alt='{$images[$i]}' />";
}
}

//Now to display the page numbers!
for($p = 1; $p <= $totalPages; $p++){
if($p == $page){
	$tmp_pages[] = "<strong>{$p}</strong>";
}else{
	$tmp_pages[] = "<a href='?page={$p}'>{$p}</a>";
}
}

//Now display pages, seperated by a hyphon.
echo "<br />" . implode(" - ", $tmp_pages);
?>

it isn't hard coded:

 

<?php
	if(!empty($_GET["evenement"])){
		$evenement = $_GET["evenement"];
		$naam = $_GET["naam"];
		echo "<h2>".$naam."</h2>";
			if($handle = opendir("pics/".$evenement)) {
				while(($read = readdir($handle)) !== false) {
					if ($read != "." && $read != ".."){
					echo "<div class=\"img\">";
					echo "<a  href=\"pics/".$evenement."/".$read."\" rel=\"lightbox[".$evenement."]\"><img src =\"pics/".$evenement."/".$read."\" border = \"0\"/  width=\"110\" height=\"90\" /></a>";
.....

?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.