Jump to content

paganation help please..


techker

Recommended Posts

hey guys i have this script i found it works in all but it does not link to page 2?it shows like 10 results on 2 pages bu the second page is not there?

 

<? //---------------------------------------------------------------------------------------
////////////////////////////////////////////
//  PAGINATION FUNCTION  //
//  by: Karl Steltenpohl          //
////////////////////////////////////////////
$con = mysql_connect("localhost","t","k"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("techker_softcore", $con);



function pagination($table, $order, $searchstring, $pre, $pos, $nav, $page, $pages)
{
///////////////////////
//  Get Current Url  //
///////////////////////
$webpage = basename($_SERVER['PHP_SELF']);
global $webpage;

////////////////////////
//  Sorter and Pagination Query Begin  //
/////////////////////////////////////////
//$pre = $_REQUEST['pre'];
//$pos = $_REQUEST['pos'];
//$nav = $_REQUEST['nav'];
//$page = $_REQUEST['page'];
//$pages = $_REQUEST['pages'];


///////////////////////////////////////////
//  Set Initial Pre Pos and Page Limits  //
///////////////////////////////////////////
if($pre == "" and $pos == "" and $page == "")
{
$pre = 0;
$pos = 9;
$page = 1;
}


///////////////////////////////
//  User Navigates Previous  //
///////////////////////////////
if($nav == "prev")
{
$pre = ($pre - 10);
$pos = ($pos - 10);
$page = ($page - 1);
}


///////////////////////////
//  User Navigates Next  //
///////////////////////////
if($nav == "next")
{
$pre = ($pre + 10);
$pos = ($pos + 10);
$page = ($page + 1);
}


/////////////////////////////
//  If page number to low  //
/////////////////////////////
if($page < 1)
{
$pre = 0;
$pos = 9;
$page = 1;
}

//////////////////////////////
//  If page number to high  //
//////////////////////////////
if($page > $pages)
{
$pre = 0;
$pos = 9;
$page = 1;
}


//////////////////////////////////////////
//  Select for total number or results  //
//////////////////////////////////////////
$r = "SELECT DISTINCT * FROM $table $searchstring";
$re = mysql_query($r) or die("error 12547");
$nums = mysql_num_rows($re);


////////////////////////////////////////////
//  Select for current displayed results  //
////////////////////////////////////////////
$request = "SELECT DISTINCT * FROM $table $searchstring ORDER BY $order DESC LIMIT $pre, 10";
$result = mysql_query($request) or die("error 25352");
$num = mysql_num_rows($result);


///////////////////////////////////////
//  Determine total number of pages  //
///////////////////////////////////////
$pages = ceil($nums/10);


/////////////////////////////////
//  Create Navigation Display  //
///////////////////////////////// 
$navigation = "
$nums entries on $pages Page(s)<br>
<a href=\"$webpage?page=$page&nav=prev&pre=$pre&pos=$pos&pages=$pages&view=view\">Previous</a> |
Page $page |
<a href=\"$webpage?page=$page&nav=next&pre=$pre&pos=$pos&pages=$pages&view=view\">Next</a><br>
Results $pre - $pos
";

/////////////////////////////////
//  Create Paginagtion Array   //
/////////////////////////////////
// result is the result of the limited query
$pagination = array($navigation, $result, $num);


/////////////////////////////////
//  Return Paginagtion Array   //
/////////////////////////////////
return $pagination;
}//end function



//--------------------------------------------------------------------------------------------
//Here is an example of how to impliment it
//------------------------------------------------------------------------------------------

//this is the search string to the sql db
$searchstring = "WHERE `type` = 'sketch'";

//this is the table being searched
$table = "softcore";

//this is the table field to order the results by
$order = "id";

// call the function
$pagination = pagination($table, $order, $searchstring, $pre, $pos, $nav, $page, $pages);

//this pulls out the display
$navigation = $pagination[0];

//this pulls out the results
$result = $pagination[1];

//this pulls out the num of results
$num = $pagination[2];

//echo the display onto the site
while ($row = mysql_fetch_array($result)) 
	{

	 echo '<th scope="row"><a href="/admin/art/'. $row['pic'] .'" target="_blank" >
<img src="/admin/imgsize.php?w=60&h=50&img=art/'. $row['pic'] .'" border="0" alt="" />
</a>
<th />'; 

	}
echo"<br>$navigation</br>";

//now all you need to do is loop the result based on the num
//each page will display 10 results.?>

 

link:http://softcoredesign.com/test2.php?page=1&nav=next&pre=0&pos=9&pages=2&view=view

Link to comment
https://forums.phpfreaks.com/topic/138863-paganation-help-please/
Share on other sites

<?php

$page = (!$_GET['page'] || $_GET['page'] < 0) ? "1" : $_GET['page'];
$page = ceil($page);
$limit = 10;

$start = $limit;
$end = $page*$limit-($limit);

$amount_check = "SELECT `message` FROM `forum_replies` WHERE `tid`='".$id."'";
$amount_check_res = mysql_query($amount_check) or die(mysql_error());
$amount_count = mysql_num_rows($amount_check_res);
$pages = ceil($amount_count/$limit);

$previous = ($page-1 <= 0) ? "« Prev" : "<a href=\"./forum-index.php?act=topic&id=".$id."&page=".($page-1)."\">« Prev</a>";
$nextpage = ($page+1 > $pages) ? " Next »" : " <a href=\"./forum-index.php?act=topic&id=".$id."&page=".($page+1)."\">Next »</a>";

echo $previous;
for($i=1;$i<=$pages;$i++){
$href = ($page == $i) ? " ".$i." " : " <a href=\"./forum-index.php?act=topic&id=".$id."&page=".$i."\">".$i."</a> ";
   
echo $href;
}
echo $nextpage;

$select_sql = "SELECT * FROM `forum_replies` WHERE `tid` = ".$id." ORDER BY `id` ASC LIMIT ".$end.", ".$start."";
$select_res = mysql_query($select_sql) or die(mysql_error()); 

?>

 

here is the code i watched a tutorial for. take a look and see what you can find out.

ill try to combine the two together.

 

What results do you want the page to show?

 

edit: try this

 

<?php 

$con = mysql_connect("localhost","t","k"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("techker_softcore", $con);

function pagination($table, $order, $searchstring, $pre, $pos, $nav, $page, $pages)
{
$webpage = basename($_SERVER['PHP_SELF']);
global $webpage;

$pre = $_REQUEST['pre'];
$pos = $_REQUEST['pos'];
$nav = $_REQUEST['nav'];
$page = (!$_GET['page'] || $_GET['page'] < 0) ? "1" : $_GET['page'];
$page = ceil($page);
$limit = 10;

$start = $limit;
$end = $page*$limit-($limit);

$amount_check = "SELECT DISTINCT FROM $table $searchstring";
$amount_check_res = mysql_query($amount_check) or die(mysql_error());
$amount_count = mysql_num_rows($amount_check_res);
$pages = ceil($amount_count/$limit);

$request = "SELECT DISTINCT * FROM $table $searchstring ORDER BY $order DESC LIMIT $pre, 10";
$result = mysql_query($request) or die("error 25352");
$num = mysql_num_rows($result);

if($pre == "" and $pos == "" and $page == "")
{
	$pre = 0;
	$pos = 9;
	$page = 1;
}

if($nav == "prev")
{
	$pre = ($pre - 10);
	$pos = ($pos - 10);
	$page = ($page - 1);
}

if($nav == "next")
{
	$pre = ($pre + 10);
	$pos = ($pos + 10);
	$page = ($page + 1);
}

if($page < 1)
{
	$pre = 0;
	$pos = 9;
	$page = 1;
}

if($page > $pages)
{
	$pre = 0;
	$pos = 9;
	$page = 1;
}


$navigation = "
$nums entries on $pages Page(s)<br>
<a href=\"$webpage?page=$page&nav=prev&pre=$pre&pos=$pos&pages=$pages&view=view\">Previous</a> |
Page $page |
<a href=\"$webpage?page=$page&nav=next&pre=$pre&pos=$pos&pages=$pages&view=view\">Next</a><br>
Results $pre - $pos";

$pagination = array($navigation, $result, $num);

return $pagination;
}//end function



//--------------------------------------------------------------------------------------------
//Here is an example of how to impliment it
//------------------------------------------------------------------------------------------

//this is the search string to the sql db
$searchstring = "WHERE `type` = 'sketch'";

//this is the table being searched
$table = "softcore";

//this is the table field to order the results by
$order = "id";

// call the function
$pagination = pagination($table, $order, $searchstring, $pre, $pos, $nav, $page, $pages);

//this pulls out the display
$navigation = $pagination[0];

//this pulls out the results
$result = $pagination[1];

//this pulls out the num of results
$num = $pagination[2];

//echo the display onto the site
while ($row = mysql_fetch_array($result)) 
	{

	 echo '<th scope="row"><a href="/admin/art/'. $row['pic'] .'" target="_blank" >
<img src="/admin/imgsize.php?w=60&h=50&img=art/'. $row['pic'] .'" border="0" alt="" />
</a>
<th />'; 

	}
echo"<br>$navigation</br>";

//now all you need to do is loop the result based on the num
//each page will display 10 results.?>

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.