doddsey_65 Posted April 5, 2010 Share Posted April 5, 2010 Okay i will try to explain this the best I can. the page in question is tutorials.php. As you can see i am using if statements because depending on the link they click they are either taken to tutorials.php?sort=animation or tutorials.php?sort=basics. My code decides which page they are viewing and then displays records from a database that match the link they clicked, being either animation or basics. This works fine but when i added my pagination script it went wrong. When i click next i get no results displayed and the page reverts back to the else statement because the url doesnt match the if or elseif statements. This pagination works fine when i am not including these if statements but i need it to work for these. Anyone know how? Heres the code. <?php ob_start(); include('header.php'); include('db.php'); $db=mysql_connect($db_host,$db_user,$db_pass) or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db($db_name,$db); $url = $_SERVER["REQUEST_URI"]; echo '<div id="page">'; echo '<div id="content">'; if ($url == '/tutorials.php?sort=animation'): $pagenum = $_GET['pagenum']; if (!(isset($pagenum))) { $pagenum = 1; } $data = mysql_query("SELECT * FROM tutorials WHERE category='1'") or die(mysql_error()); $rows = mysql_num_rows($data); $page_rows = 5; $last = ceil($rows/$page_rows); if ($pagenum < 1) { $pagenum = 1; } elseif ($pagenum > $last) { $pagenum = $last; } $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; $result = mysql_query("SELECT * FROM tutorials WHERE category = '1' $max") or die(mysql_error()); while($row = mysql_fetch_object($result)) { echo '<div class="post">'; echo '<p class="meta">'; echo $row->fullname. ' | ' .$row->name; echo '</a>'; echo '</p><div class="entry">'; echo '<center>' . $row->path .'<br>'; echo $row->description; echo '</center></div></div>'; } echo " Page $pagenum of $last <p>"; if ($pagenum == 1) { } else { echo " <a href='{$_SERVER['PHP_SELF']}?sort=animation&&pagenum=1'> <<-First</a> "; echo " "; $previous = $pagenum-1; echo " <a href='{$_SERVER['PHP_SELF']}?sort=animation&&pagenum=$previous'> <-Previous</a> "; } echo " ---- "; if ($pagenum == $last) { } else { $next = $pagenum+1; echo " <a href='{$_SERVER['PHP_SELF']}?sort=animation&&pagenum=$next'>Next -></a> "; echo " "; echo " <a href='{$_SERVER['PHP_SELF']}?sort=animation&&pagenum=$last'>Last ->></a> "; } elseif ($url == '/tutorials.php?sort=basics'): $pagenum = $_GET['pagenum']; if (!(isset($pagenum))) { $pagenum = 1; } $data = mysql_query("SELECT * FROM tutorials WHERE category='2'") or die(mysql_error()); $rows = mysql_num_rows($data); $page_rows = 5; $last = ceil($rows/$page_rows); if ($pagenum < 1) { $pagenum = 1; } elseif ($pagenum > $last) { $pagenum = $last; } $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; $result = mysql_query("SELECT * FROM tutorials WHERE category = '2'") or die(mysql_error()); while($row = mysql_fetch_object($result)) { echo '<div class="post">'; echo '<p class="meta"><a href="tutorials.' . $row-fullname. '.php">' . $row->fullname. ' | ' .$row->name.'</a>'; echo '</p><div class="entry">'; echo '<img src="' . $row->path .'">'; echo $row->description; echo '</div></div>'; } echo " Page $pagenum of $last <p>"; if ($pagenum == 1) { } else { echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> "; echo " "; $previous = $pagenum-1; echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> "; } echo " ---- "; if ($pagenum == $last) { } else { $next = $pagenum+1; echo " <a href='{$_SERVER['PHP_SELF']}?sort=basics&&pagenum=$next'>Next -></a> "; echo " "; echo " <a href='{$_SERVER['PHP_SELF']}?sort=basics&&pagenum=$last'>Last ->></a> "; } else: echo '<div class="post">'; echo '<p class="meta">Choose a Category'; echo '</p><div class="entry">'; echo '</div></div>'; endif; echo '</div>'; include('footer.php'); ob_flush(); ?> Quote Link to comment Share on other sites More sharing options...
sasa Posted April 5, 2010 Share Posted April 5, 2010 try <?php ob_start(); include('header.php'); include('db.php'); $db=mysql_connect($db_host,$db_user,$db_pass) or die ('I cannot connect to the database because: ' . mysql_error()); mysql_select_db($db_name,$db); $url = $_SERVER["REQUEST_URI"]; echo '<div id="page">'; echo '<div id="content">'; if (!isset($_GET['sort'])) $_GET['sort'] = 'animation'; if ($_GET['sort'] == 'animation') $cat=1; elseif ($_GET['sort'] == 'basics') $cat=2; $pagenum = $_GET['pagenum']; if (!(isset($pagenum))) { $pagenum = 1; } $data = mysql_query("SELECT * FROM tutorials WHERE category='".$cat."'") or die(mysql_error()); $rows = mysql_num_rows($data); $page_rows = 5; $last = ceil($rows/$page_rows); if ($pagenum < 1) { $pagenum = 1; } elseif ($pagenum > $last) { $pagenum = $last; } $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; $result = mysql_query("SELECT * FROM tutorials WHERE category = '".$cat."' $max") or die(mysql_error()); while($row = mysql_fetch_object($result)) { echo '<div class="post">'; echo '<p class="meta">'; echo $row->fullname. ' | ' .$row->name; echo '</a>'; echo '</p><div class="entry">'; echo '<center>' . $row->path .'<br>'; echo $row->description; echo '</center></div></div>'; } echo " Page $pagenum of $last <p>"; if ($pagenum == 1) { } else { echo " <a href='{$_SERVER['PHP_SELF']}?".$_GET['sort']."&pagenum=1'> <<-First</a> "; echo " "; $previous = $pagenum-1; echo " <a href='{$_SERVER['PHP_SELF']}?sort=".$_GET['sort']."&pagenum=$previous'> <-Previous</a> "; } echo " ---- "; if ($pagenum == $last) { } else { $next = $pagenum+1; echo " <a href='{$_SERVER['PHP_SELF']}?sort=".$_GET['sort']."&pagenum=$next'>Next -></a> "; echo " "; echo " <a href='{$_SERVER['PHP_SELF']}?sort=".$_GET['sort']."&pagenum=$last'>Last ->></a> "; } echo '<div class="post">'; echo '<p class="meta">Choose a Category'; echo '</p><div class="entry">'; echo '</div></div>'; echo '</div>'; include('footer.php'); ob_flush(); ?> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.