[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 354
  • Last Modified:

Pagination limits

I have a functional pagination script I've hacked out from a variety of examples online. I just need it to do a couple more things. I need to eliminate the possibility of negatives on the Previous link (http://localhost/_maps/paginate.php?startrow=-10).

I would like to just hide the Previous link if ?startrow=0 but I'm not sure how to make that happen. My code is below if someone can help.
<?php
include_once("includes/db.php");
?>
<?PHP
//check if the starting row variable was passed in the URL or not
if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
  //we give the value of the starting row to 0 because nothing was found in URL
  $startrow = 0;
//otherwise we take the value from the URL
} else {
  $startrow = (int)$_GET['startrow'];
}
?>
 
<?PHP
//this part goes after the checking of the $_GET var
$fetch = mysql_query("SELECT * 
					FROM markers 
					JOIN category ON category.cat_id = markers.cat_id
					LIMIT $startrow, 10")or
die(mysql_error());
?>
<?php
	$num=mysql_numrows($fetch);
	
	mysql_close();
?>
 
<table border="1" cellspacing="0" cellpadding="1" bordercolor="#000000" width="60%" align="center">
	<tr>
		<th align="left"><font face="verdana" size="2">Marker</font></th>
		<th align="left"><font face="verdana" size="2">Category</font></th>
		<th valign="top" width="60"><font face="verdana" size="2">Edit</font></th>
		<th valign="top" width="60"><font face="verdana" size="2">Delete</font></th>
	</tr>
 
<?php
	$i=0;
		while ($i < $num) {
			$marker_id=mysql_result($fetch,$i,"marker_id");
			$name=mysql_result($fetch,$i,"name");
			$street=mysql_result($fetch,$i,"street");
			$city=mysql_result($fetch,$i,"city");
			$state=mysql_result($fetch,$i,"state");
			$zip=mysql_result($fetch,$i,"zip");
			$url=mysql_result($fetch,$i,"url");
			$lat=mysql_result($fetch,$i,"lat");
			$lng=mysql_result($fetch,$i,"lng");
			$cat_name=mysql_result($fetch,$i,"cat_name");
?>
 
<tr>
	<td valign="top">
		<font face="verdana" size="2"><b><?php echo $name; ?></b></font><br/>
		<font face="verdana" size="1"><?php echo $street; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $city; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $state; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $zip; ?></font><br/>
		<font face="verdana" size="1"><a href="<?php echo $url; ?>"><?php echo $url; ?></a></font><br/>
		<font face="verdana" size="1"><b>Latitude:</b>&nbsp;<?php echo $lat; ?></font>&nbsp;
		<font face="verdana" size="1"><b>Longitude:</b>&nbsp;<?php echo $lng; ?></font></td>
	<td valign="top"><font face="verdana" size="2"><?php echo $cat_name; ?></font></td>
	<td valign="top" width="60"><a href="edit.php?marker_id=<?php echo $marker_id; ?>"><img src="../images/edit.png" alt="Edit" border="0"></a></td>
	<td valign="top" width="60"><a href="confirm_delete.php?marker_id=<?php echo $marker_id; ?>"><img src="../images/delete.png" alt="Delete" border="0"></a></td>
</tr>
<input type="hidden" name="marker_id" value="<?php echo $marker_id; ?>">
<?php
	$i++;
	}
?>
</table>
 
 
<?PHP
//now this is the link..
echo '<center><table><td><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow-10).'">Previous</a></td><td align="right"><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a></td></table></center>';
?>

Open in new window

0
webweever
Asked:
webweever
1 Solution
 
BrianMMCommented:
there is nicer but you could always just check for a negative value in your else

//otherwise we take the value from the URL
} else {
  if($_GET['startrow'] <0) {
    $startrow = 0;
  } else {
    $startrow = (int)$_GET['startrow'];
  }
}

to hide if $startrow = 0 quckly do an if and display wink with or without previous.
0
 
bored321Commented:
Another solution that hides the tag if start row <=0 would be
<?
//check if $startrow is less than or equal to 0 
$previoustag = ($startrow <=0) ?  "" : '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow-10).'">Previous</a>';
//now this is the link..
echo '<center><table><td>'.$previoustag.'</td><td align="right"><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a></td></table></center>';
?>

Open in new window

0
 
webweeverAuthor Commented:
Below is how I did it and it appears to work. Thanks for the help
<?php
include_once("includes/db.php");
?>
<?PHP
//check if the starting row variable was passed in the URL or not
if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow']) or ($_GET['startrow'] < 0)) {
  //we give the value of the starting row to 0 because nothing was found in URL
	$startrow = 0;
	// otherwise we take the value from the URL
	} else {
	$startrow = (int)$_GET['startrow'];
}
 
?>
 
<?PHP
//this part goes after the checking of the $_GET var
$fetch = mysql_query("SELECT * 
					FROM markers 
					JOIN category ON category.cat_id = markers.cat_id
					LIMIT $startrow, 10")or
die(mysql_error());
?>
<?php
	$num=mysql_numrows($fetch);
	
	mysql_close();
?>
 
<table border="1" cellspacing="0" cellpadding="1" bordercolor="#000000" width="60%" align="center">
	<tr>
		<th align="left"><font face="verdana" size="2">Marker</font></th>
		<th align="left"><font face="verdana" size="2">Category</font></th>
		<th valign="top" width="60"><font face="verdana" size="2">Edit</font></th>
		<th valign="top" width="60"><font face="verdana" size="2">Delete</font></th>
	</tr>
 
<?php
	$i=0;
		while ($i < $num) {
			$marker_id=mysql_result($fetch,$i,"marker_id");
			$name=mysql_result($fetch,$i,"name");
			$street=mysql_result($fetch,$i,"street");
			$city=mysql_result($fetch,$i,"city");
			$state=mysql_result($fetch,$i,"state");
			$zip=mysql_result($fetch,$i,"zip");
			$url=mysql_result($fetch,$i,"url");
			$lat=mysql_result($fetch,$i,"lat");
			$lng=mysql_result($fetch,$i,"lng");
			$cat_name=mysql_result($fetch,$i,"cat_name");
?>
 
<tr>
	<td valign="top">
		<font face="verdana" size="2"><b><?php echo $name; ?></b></font><br/>
		<font face="verdana" size="1"><?php echo $street; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $city; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $state; ?></font>,&nbsp;
		<font face="verdana" size="1"><?php echo $zip; ?></font><br/>
		<font face="verdana" size="1"><a href="<?php echo $url; ?>"><?php echo $url; ?></a></font><br/>
		<font face="verdana" size="1"><b>Latitude:</b>&nbsp;<?php echo $lat; ?></font>&nbsp;
		<font face="verdana" size="1"><b>Longitude:</b>&nbsp;<?php echo $lng; ?></font></td>
	<td valign="top"><font face="verdana" size="2"><?php echo $cat_name; ?></font></td>
	<td valign="top" width="60"><a href="edit.php?marker_id=<?php echo $marker_id; ?>"><img src="../images/edit.png" alt="Edit" border="0"></a></td>
	<td valign="top" width="60"><a href="confirm_delete.php?marker_id=<?php echo $marker_id; ?>"><img src="../images/delete.png" alt="Delete" border="0"></a></td>
</tr>
<input type="hidden" name="marker_id" value="<?php echo $marker_id; ?>">
<?php
	$i++;
	}
?>
</table>
 
 
<?PHP
//now this is the link..
if (!isset($_GET['startrow']) or ($_GET['startrow'] <= 0)) {
	echo '<center><table><td></td><td align="right"><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a></td></table></center>';
} else {
	echo '<center><table><td><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow-10).'">Previous</a></td><td align="right"><a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+10).'">Next</a></td></table></center>';
}
?>

Open in new window

0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now