Page 1 of 1

paging my site problem

Posted: Sun Jun 20, 2010 8:18 am
by vin_akleh

Code: Select all

<?php
$pg=$_GET["pg"]-1;
	if ($pg<0)$pg=0;
	$pg=$pg*15;
	$maxurl=mysql_query("select * from mawdoatadabia order by id desc limit ".$pg.",15");
		echo '<span class="forms">';
		echo '<br><table class="sample" style="width:95%;"><tbody><tr><th style="width:70%;">العنوان</th><th style="width:20%;">التاريخ</th></tr>';
		while ($result=mysql_fetch_array($maxurl))
		{
			echo '<tr><td>';
			echo '<a href="'.'index.php?page=new_adabia&'."maktoba_id=".''.$result["id"].'" style="font-size:130%;color:blue">'.$result["mawdoatadabia_title"].'</a>';
			echo '</td><td>';
			echo date("d-m-Y",$result[date]);
			echo '</td></tr>';
		}//end while
			echo '</tbody></table>';
		$count=mysql_fetch_array(mysql_query("select count(*) from mawdoatadabia"));
			$max_page=ceil($count['0']/15);
			if($max_page<1){ 
			$max_page=1;}
			
			$page_counter='';
			for($i=1;$i<=$max_page;$i++)
			{
			if ($i==$pg){
			$page_counter.='<a href="'."index.php?page=mawdoatadabia".'&pg='.$i.'" style="padding:7px;background-color:#f1f1f1;"><b>'.$i.'</b></a>';
			}else{
			$page_counter.='<a href="'."index.php?page=mawdoatadabia".'&pg='.$i.'" style="padding:7px;">'.$i.'</a>';
			}
			}
			echo '<br><span class="pad">...'.$page_counter.'...</span><br>';
		echo'</span>
		<br>';
?>
why this part of my code doesn't ever work

Code: Select all

$page_counter.='<a href="'."index.php?page=mawdoatadabia".'&pg='.$i.'" style="padding:7px;background-color:#f1f1f1;"><b>'.$i.'</b></a>';
i want to mark the current page that is being viewed??!!
need help please

Re: paging my site problem

Posted: Sun Jun 20, 2010 9:50 am
by lenton
This should work:
$page_counter = '<a href="index.php?page=mawdoatadabia&pg=' . $i . '" style="padding:7px;background-color:#f1f1f1;"><b>' . $i . '</b></a>';

Re: paging my site problem

Posted: Thu Jun 24, 2010 6:52 am
by vin_akleh
lenton wrote:This should work:
$page_counter = '<a href="index.php?page=mawdoatadabia&pg=' . $i . '" style="padding:7px;background-color:#f1f1f1;"><b>' . $i . '</b></a>';
that is not the problem it doesn't get a true on the if condition. any way i got my hands on the pagination code from http://www.phpeasystep.com/phptu/29.html and it worked fin when i tested it but when i tried to apply it on my site it didn't work

Code: Select all

<?php
	/*
		Place code to connect to your DB here.
	*/
	include('connection.php');	// include your code to connect to DB.
	$tbl_name="mawdoatseyaseya";		//your table name
	// 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 $tbl_name";
	$total_pages = mysql_fetch_array(mysql_query($query));
	$total_pages = $total_pages[num];
	
	/* Setup vars for query. */
	$targetpage = "index.php?page=mawdoatseyaseya&"; 	//your file name  (the name of this file)
	$limit = 15; 								//how many items to show per page
	$page_num = $_GET['page_num'];
	if($page_num) 
		$start = ($page_num - 1) * $limit; 			//first item to display on this page
	else
		$start = 0;								//if no page var is given, set start to 0
	
	/* Get data. */
	$sql = "SELECT * FROM $tbl_name LIMIT $start, $limit";
	$result = mysql_query($sql);
	
	/* Setup page vars for display. */
	if ($page_num == 0) $page_num = 1;					//if no page var is given, default to 1.
	$prev = $page_num - 1;							//previous page is page - 1
	$next = $page_num + 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_num > 1) 
			$pagination.= "<a href=\"$targetpage?page_num=$prev\">« السابق</a>";
		else
			$pagination.= "<span class=\"disabled\">«  السابق</span>";	
		
		//pages	
		if ($lastpage < 7 + ($adjacents * 2))	//not enough pages to bother breaking it up
		{	
			for ($counter = 1; $counter <= $lastpage; $counter++)
			{
				if ($counter == $page_num)
					$pagination.= "<span class=\"current\">$counter</span>";
				else
					$pagination.= "<a href=\"$targetpage?page_num=$counter\">$counter</a>";					
			}
		}
		elseif($lastpage > 5 + ($adjacents * 2))	//enough pages to hide some
		{
			//close to beginning; only hide later pages
			if($page_num < 1 + ($adjacents * 2))		
			{
				for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
				{
					if ($counter == $page_num)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?page_num=$counter\">$counter</a>";					
				}
				$pagination.= "...";
				$pagination.= "<a href=\"$targetpage?page_num=$lpm1\">$lpm1</a>";
				$pagination.= "<a href=\"$targetpage?page_num=$lastpage\">$lastpage</a>";		
			}
			//in middle; hide some front and some back
			elseif($lastpage - ($adjacents * 2) > $page_num && $page_num > ($adjacents * 2))
			{
				$pagination.= "<a href=\"$targetpage?page_num=1\">1</a>";
				$pagination.= "<a href=\"$targetpage?page_num=2\">2</a>";
				$pagination.= "...";
				for ($counter = $page_num - $adjacents; $counter <= $page_num + $adjacents; $counter++)
				{
					if ($counter == $page_num)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?page_num=$counter\">$counter</a>";					
				}
				$pagination.= "...";
				$pagination.= "<a href=\"$targetpage?page_num=$lpm1\">$lpm1</a>";
				$pagination.= "<a href=\"$targetpage?page_num=$lastpage\">$lastpage</a>";		
			}
			//close to end; only hide early pages
			else
			{
				$pagination.= "<a href=\"$targetpage?page_num=1\">1</a>";
				$pagination.= "<a href=\"$targetpage?page_num=2\">2</a>";
				$pagination.= "...";
				for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
				{
					if ($counter == $page_num)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?page_num=$counter\">$counter</a>";					
				}
			}
		}
		
		//next button
		if ($page_num < $counter - 1) 
			$pagination.= "<a href=\"$targetpage?page_num=$next\">التالي »</a>";
		else
			$pagination.= "<span class=\"disabled\">التالي »</span>";
		$pagination.= "</div>\n";		
	}
?>

	<?php
		echo '<br><table class="sample" style="width:95%;"><tbody><tr><th style="width:70%;">العنوان</th><th style="width:20%;">التاريخ</th></tr>';
		while($row = mysql_fetch_array($result))
		{
		
			echo '<tr><td>';
			echo '<a href="'.$row["mawdoatseyaseya"].'"style="font-size:130%;color:blue">'.$row["mawdoatseyaseya_title"].' &nbsp(<label style="font-size:10px;">'.(round(filesize($row["mawdoatseyaseya"])/(1024*1024),2)).'م.ب</label>)</a>';
			echo '</td><td>';
			echo date("d-m-Y",$row[date]);
			echo '</td></tr>';
		}
		echo '</tbody></table><br><span class="center2">';
		echo $pagination;
		echo '</span>';
	?>

<?php=$pagination?>
only the first page shows up, when i try to go to the next page it changes the page_num from 1 to 2 but the displayed data is the same from the page_num=1
i think the problem is here

Code: Select all

$targetpage = "index.php?page=mawdoatseyaseya&"; 	//your file name  (the name of this file)
but i cant figure it out