Jump to content

still have a pagination problem!


Noskiw

Recommended Posts

  • Replies 87
  • Created
  • Last Reply

actually, those two things made it worse. i have changed the $nextpage to

 

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

 

but the next link only shows up on the first page. and not the second. anything wrong there?

Link to comment
Share on other sites

$pages = ceil($amount_count/$limit);

31/10 = 3.1

round up and makes 4... so problem isn't there i think. (to be sure, echo $amount_count somewhere and be sure it is 31 (or more if someone else posts))

 

but I don't see where is is otherwise.

 

Link to comment
Share on other sites

this is the code now

 

<?php

$id = $_GET['id'];

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

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

if(isset($id)){
$sql = "SELECT * FROM forum_topics WHERE id='".$id."'";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) == 0){
	echo "This topic does not exist!\n";
}else{
	$row = mysql_fetch_assoc($res);
	$sql2 = "SELECT admin FROM forum_sub_cats WHERE id='".$row['cid']."'";
	$res2 = mysql_query($sql2) or die(mysql_error());
	$row2 = mysql_fetch_assoc($res2);
	if($row2['admin'] == 1 && $admin_user_level == 0){
		echo "You cannot view this topic because you are not an admin!\n";
	}else{
		$a = (isa($row['uid'])) ? "<font style=\"color:#800000;\">ADMIN</font>" : "";

		$amount_check = "SELECT * FROM forum_replies WHERE tid='".$tid."'";
		$amount_check_res = mysql_query($amount_check) or die(mysql_error());
		$amount_count = mysql_num_rows($amount_check_res);
		$pages = 4;

		$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;
		echo "</td></tr>\n";

		echo "<table border=\"0\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\">\n";
		echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><b><font size=\"3\">".$row['title']."</font></b><font size=\"3\"> - Posted On: <em>".$row['date']."</em></font></td></tr>\n";
		echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($row['uid'], true)."<br>Posts: ".posts($row['uid'])."<br>".$a."</td>\n";
		echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
		echo topic($row['message']);
		echo "</td>\n";
		echo "</tr>\n";

		$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()); 

		while($rowr = mysql_fetch_assoc($select_res)){
			echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><font size=\"3\"> - Posted On: <em>".$rowr['date']."</em></font></td></tr>\n";
			echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($rowr['uid'], true)."<br>Posts: ".posts($rowr['uid'])."<br>".$a."</td>\n";
			echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
			echo topic($rowr['message']);
			echo "</td>\n";
			echo "</tr>\n";
		}

		echo "<form method=\"post\" action=\"./forum-index.php?act=reply&id=".$row['id']."\">\n";
		echo "<tr><td colspan=\"2\" align=\"center\"><textarea style=\"width:90%\" name=\"reply\"></textarea><br><input type=\"submit\" name=\"submit\" value=\"add reply!\" style=\"width:90%\" /></td></tr>\n";

		echo "</table>\n";
	}
}
}else{
echo "Please view a valid topic!\n";
}

?>

 

i dont know how to fix it. in the $pages bit

Link to comment
Share on other sites

this is the code now

 

<?php

$id = $_GET['id'];

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

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

if(isset($id)){
$sql = "SELECT * FROM forum_topics WHERE id='".$id."'";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) == 0){
	echo "This topic does not exist!\n";
}else{
	$row = mysql_fetch_assoc($res);
	$sql2 = "SELECT admin FROM forum_sub_cats WHERE id='".$row['cid']."'";
	$res2 = mysql_query($sql2) or die(mysql_error());
	$row2 = mysql_fetch_assoc($res2);
	if($row2['admin'] == 1 && $admin_user_level == 0){
		echo "You cannot view this topic because you are not an admin!\n";
	}else{
		$a = (isa($row['uid'])) ? "<font style=\"color:#800000;\">ADMIN</font>" : "";

		$amount_check = "SELECT * FROM forum_replies WHERE tid='".$tid."'";
		$amount_check_res = mysql_query($amount_check) or die(mysql_error());
		$amount_count = mysql_num_rows($amount_check_res);
		$pages = 4;

		$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;
		echo "</td></tr>\n";

		echo "<table border=\"0\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\">\n";
		echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><b><font size=\"3\">".$row['title']."</font></b><font size=\"3\"> - Posted On: <em>".$row['date']."</em></font></td></tr>\n";
		echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($row['uid'], true)."<br>Posts: ".posts($row['uid'])."<br>".$a."</td>\n";
		echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
		echo topic($row['message']);
		echo "</td>\n";
		echo "</tr>\n";

		$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()); 

		while($rowr = mysql_fetch_assoc($select_res)){
			echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><font size=\"3\"> - Posted On: <em>".$rowr['date']."</em></font></td></tr>\n";
			echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($rowr['uid'], true)."<br>Posts: ".posts($rowr['uid'])."<br>".$a."</td>\n";
			echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
			echo topic($rowr['message']);
			echo "</td>\n";
			echo "</tr>\n";
		}

		echo "<form method=\"post\" action=\"./forum-index.php?act=reply&id=".$row['id']."\">\n";
		echo "<tr><td colspan=\"2\" align=\"center\"><textarea style=\"width:90%\" name=\"reply\"></textarea><br><input type=\"submit\" name=\"submit\" value=\"add reply!\" style=\"width:90%\" /></td></tr>\n";

		echo "</table>\n";
	}
}
}else{
echo "Please view a valid topic!\n";
}

?>

 

i dont know how to fix it. in the $pages bit

 

anyone?

Link to comment
Share on other sites

OK try this code - it looks like you were trying to calculate how many pages before running a query to find out how many lines were being returned.

 

I've re-written the first chunk but formatted everything else - back up your original script first before trying this one.

 

<?php
$intMax=10; //NUMBER OF ITEMS PER PAGE
$id = intval($_GET['id']);
$page = ($_GET['page'] > 0 ? "1" : intval($_GET['page']);

//$page = ceil($page);
//$limit = 10;

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

if ($id>0) {
  $sql="SELECT * FROM forum_topics WHERE id='".$id."'";
  $intTotalMatched=mysql_num_rows(mysql_query($sql));
  if (mysql_num_rows($res) == 0) {
    echo "This topic does not exist - Please view a valid topic!\n";
  } else {
    $intTotalPages=ceil($intTotalMatched/$intMax);
    $intStart=(($intPage*$intMax)-$intMax);
    if ($page>$intTotalPages) {$page=$intTotalPages;}
echo 'id='.$id.', page='.$page.', totalmatched='.$intTotalMatched.', totalpages='.$intTotalPages.', start='.$intStart.', end='.$intMax.'<br />';
    $res=mysql_query($sql." LIMIT ".$intStart.",".$intMax);
echo 'sql='.$sql.'<br />';
//  $sql = "SELECT * FROM forum_topics WHERE id='".$id."'";
//  $res = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($res);
    $sql2 = "SELECT admin FROM forum_sub_cats WHERE id='".$row['cid']."'";
    $res2 = mysql_query($sql2) or die(mysql_error());
    $row2 = mysql_fetch_assoc($res2);
    if ($row2['admin'] == 1 && $admin_user_level == 0) {
      echo "You cannot view this topic because you are not an admin!\n";
    } else {
      $a = (isa($row['uid'])) ? "<font style=\"color:#800000;\">ADMIN</font>" : "";

      $amount_check = "SELECT * FROM forum_replies WHERE tid='".$tid."'";
      $amount_check_res = mysql_query($amount_check) or die(mysql_error());
      $amount_count = mysql_num_rows($amount_check_res);
      $pages = 4;

      $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;
      echo "</td></tr>\n";

      echo "<table border=\"0\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\">\n";
      echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><b><font size=\"3\">".$row['title']."</font></b><font size=\"3\"> - Posted On: <em>".$row['date']."</em></font></td></tr>\n";
      echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($row['uid'], true)."<br>Posts: ".posts($row['uid'])."<br>".$a."</td>\n";
      echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
      echo topic($row['message']);
      echo "</td>\n";
      echo "</tr>\n";

      $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()); 

      while($rowr = mysql_fetch_assoc($select_res)){
        echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><font size=\"3\"> - Posted On: <em>".$rowr['date']."</em></font></td></tr>\n";
        echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($rowr['uid'], true)."<br>Posts: ".posts($rowr['uid'])."<br>".$a."</td>\n";
        echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
        echo topic($rowr['message']);
        echo "</td>\n";
        echo "</tr>\n";
      }

      echo "<form method=\"post\" action=\"./forum-index.php?act=reply&id=".$row['id']."\">\n";
      echo "<tr><td colspan=\"2\" align=\"center\"><textarea style=\"width:90%\" name=\"reply\"></textarea><br><input type=\"submit\" name=\"submit\" value=\"add reply!\" style=\"width:90%\" /></td></tr>\n";
      echo "</table>\n";
    }
  }
}

?>

Link to comment
Share on other sites

OK try this code - it looks like you were trying to calculate how many pages before running a query to find out how many lines were being returned.

 

I've re-written the first chunk but formatted everything else - back up your original script first before trying this one.

 

<?php
$intMax=10; //NUMBER OF ITEMS PER PAGE
$id = intval($_GET['id']);
$page = ($_GET['page'] > 0 ? "1" : intval($_GET['page']);

//$page = ceil($page);
//$limit = 10;

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

if ($id>0) {
  $sql="SELECT * FROM forum_topics WHERE id='".$id."'";
  $intTotalMatched=mysql_num_rows(mysql_query($sql));
  if (mysql_num_rows($res) == 0) {
    echo "This topic does not exist - Please view a valid topic!\n";
  } else {
    $intTotalPages=ceil($intTotalMatched/$intMax);
    $intStart=(($intPage*$intMax)-$intMax);
    if ($page>$intTotalPages) {$page=$intTotalPages;}
echo 'id='.$id.', page='.$page.', totalmatched='.$intTotalMatched.', totalpages='.$intTotalPages.', start='.$intStart.', end='.$intMax.'<br />';
    $res=mysql_query($sql." LIMIT ".$intStart.",".$intMax);
echo 'sql='.$sql.'<br />';
//  $sql = "SELECT * FROM forum_topics WHERE id='".$id."'";
//  $res = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($res);
    $sql2 = "SELECT admin FROM forum_sub_cats WHERE id='".$row['cid']."'";
    $res2 = mysql_query($sql2) or die(mysql_error());
    $row2 = mysql_fetch_assoc($res2);
    if ($row2['admin'] == 1 && $admin_user_level == 0) {
      echo "You cannot view this topic because you are not an admin!\n";
    } else {
      $a = (isa($row['uid'])) ? "<font style=\"color:#800000;\">ADMIN</font>" : "";

      $amount_check = "SELECT * FROM forum_replies WHERE tid='".$tid."'";
      $amount_check_res = mysql_query($amount_check) or die(mysql_error());
      $amount_count = mysql_num_rows($amount_check_res);
      $pages = 4;

      $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;
      echo "</td></tr>\n";

      echo "<table border=\"0\" width=\"100%\" cellspacing=\"3\" cellpadding=\"3\">\n";
      echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><b><font size=\"3\">".$row['title']."</font></b><font size=\"3\"> - Posted On: <em>".$row['date']."</em></font></td></tr>\n";
      echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($row['uid'], true)."<br>Posts: ".posts($row['uid'])."<br>".$a."</td>\n";
      echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
      echo topic($row['message']);
      echo "</td>\n";
      echo "</tr>\n";

      $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()); 

      while($rowr = mysql_fetch_assoc($select_res)){
        echo "<tr><td colspan=\"2\" align=\"left\"  class=\"forum_header\"><font size=\"3\"> - Posted On: <em>".$rowr['date']."</em></font></td></tr>\n";
        echo "<tr><td align=\"left\" width=\"15%\" valign=\"top\"  class=\"forum_header\">".uid($rowr['uid'], true)."<br>Posts: ".posts($rowr['uid'])."<br>".$a."</td>\n";
        echo "<td align=\"left\" valign=\"top\" class=\"forum_header\">";
        echo topic($rowr['message']);
        echo "</td>\n";
        echo "</tr>\n";
      }

      echo "<form method=\"post\" action=\"./forum-index.php?act=reply&id=".$row['id']."\">\n";
      echo "<tr><td colspan=\"2\" align=\"center\"><textarea style=\"width:90%\" name=\"reply\"></textarea><br><input type=\"submit\" name=\"submit\" value=\"add reply!\" style=\"width:90%\" /></td></tr>\n";
      echo "</table>\n";
    }
  }
}

?>

 

the new code hasn't worked.

 

Link to comment
Share on other sites

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.