Hi,

I'm getting the following errors in my php code.

Notice: Undefined variable: page in C:\wamp\www\testsite\pagination.php on line 18

Notice: Undefined variable: page in C:\wamp\www\testsite\pagination.php on line 27

Any help much appreciated.

Here is my PHP code:

<?php
		include("connect.php");

		// How many adjacent pages should be shown on each side?
		$adjacents = 3;

		/*
		   First get total number of rows in data table.
		   If you have a WHERE clause in your query, make sure you mirror it here.
		*/
		$query = "SELECT COUNT(*) AS 'num' FROM wp_feed_aw";
		$total_pages = mysql_fetch_array(mysql_query($query));
		$total_pages = $total_pages['num'];

		/* Setup vars for query. */
		$limit = 2; 								//how many items to show per page
		if($page)
			$start = ($page - 1) * $limit; 			//first item to display on this page
		else
			$start = 0;								//if no page var is given, set start to 0

		/* Get data. */
		$query = "SELECT details, description, imagelink FROM wp_feed_aw LIMIT $start, $limit";
		$wp_feed_aw = mysql_query($query);

		/* Setup page vars for display. */
		if ($page == 0) $page = 1;					//if no page var is given, default to 1.
		$prev = $page - 1;							//previous page is page - 1
		$next = $page + 1;							//next page is page + 1
		$lastpage = ceil($total_pages/$limit);		//lastpage is = total pages / items per page, rounded up.
		$lpm1 = $lastpage - 1;						//last page minus 1

		/*
			Now we apply our rules and draw the pagination object.
			We're actually saving the code to a variable in case we want to draw it more than once.
		*/
		$pagination = "";
		if($lastpage > 1)
		{
			$pagination .= "<div class=\"pagination\">";
			//previous button
			if ($page > 1)
				$pagination.= "<a href=\"pagination.php?page=$prev\">&laquo; previous</a>";
			else
				$pagination.= "<span class=\"disabled\">&laquo; previous</span>";

			//pages
			if ($lastpage < 7 + ($adjacents * 2))	//not enough pages to bother breaking it up
			{
				for ($counter = 1; $counter <= $lastpage; $counter++)
				{
					if ($counter == $page)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"pagination.php?page=$counter\">$counter</a>";
				}
			}
			elseif($lastpage > 5 + ($adjacents * 2))	//enough pages to hide some
			{
				//close to beginning; only hide later pages
				if($page < 1 + ($adjacents * 2))
				{
					for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
					{
						if ($counter == $page)
							$pagination.= "<span class=\"current\">$counter</span>";
						else
							$pagination.= "<a href=\"pagination.php?page=$counter\">$counter</a>";
					}
					$pagination .= "<span class=\"elipses\">...</span>";
					$pagination.= "<a href=\"pagination.php?page=$lpm1\">$lpm1</a>";
					$pagination.= "<a href=\"pagination.php?page=$lastpage\">$lastpage</a>";
				}
				//in middle; hide some front and some back
				elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
				{
					$pagination.= "<a href=\"pagination.php?page=1\">1</a>";
					$pagination.= "<a href=\"pagination.php?page=2\">2</a>";
					$pagination .= "<span class=\"elipses\">...</span>";
					for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
					{
						if ($counter == $page)
							$pagination.= "<span class=\"current\">$counter</span>";
						else
							$pagination.= "<a href=\"pagination.php?page=$counter\">$counter</a>";
					}
					$pagination .= "<span class=\"elipses\">...</span>";
					$pagination.= "<a href=\"pagination.php?page=$lpm1\">$lpm1</a>";
					$pagination.= "<a href=\"pagination.php?page=$lastpage\">$lastpage</a>";
				}
				//close to end; only hide early pages
				else
				{
					$pagination.= "<a href=\"pagination.php?page=1\">1</a>";
					$pagination.= "<a href=\"pagination.php?page=2\">2</a>";
					$pagination .= "<span class=\"elipses\">...</span>";
					for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
					{
						if ($counter == $page)
							$pagination.= "<span class=\"current\">$counter</span>";
						else
							$pagination.= "<a href=\"pagination.php?page=$counter\">$counter</a>";
					}
				}
			}

			//next button
			if ($page < $counter - 1)
				$pagination.= "<a href=\"pagination.php?page=$next\">next &raquo;</a>";
			else
				$pagination.= "<span class=\"disabled\">next &raquo;</span>";
			$pagination.= "</div>\n";
		}
	?>
	<ul>
		<?php
			while($item = mysql_fetch_array($wp_feed_aw))
			{
		?>
			<li><a href="/wp_feed_aw/<?=$item[description]?>/<?=$item[details]?>"><?=$item[imagelink]?></a></li>
		<?php
			}
		?>
	</ul>
	<?=$pagination?>

Thanks guys

The error is coming from $page. Where is this variable being set? On the URL?

Try:

$page = (isset($_GET['page']) && preg_match("/\d/", $_GET['page']) ) ? $_GET['page'] : 0;

R

Thanks robothy, that has got rid of the error now which is great but I'm not seeing the page numbers for some reason. Any ideas?

I've just added in the html to call the stylesheet, but still no page numbers

Thanks
Gary

Is $lastpage > 1? As I see you have an if statement with this condition, but cannot see an else.

R

Hi, Yes I think it should be but not really sure to be honest. I got the code off a tutorial on the web, been playing with lots of pagination codes and this one seemed the best.

I can see an else further down but not too sure if this is what you mean.

Sorry for my lack of php knowledge. This is why I'm posting to find out from the experts and learn along the way. Will try and read a book about it but will take me some time.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.