paginating doesn't work?

vaulient2

New Member
Mar 12, 2013
27
3
Here is my code
PHP:
<?php
 
$getComments = mysql_query("SELECT * FROM cms_comments WHERE article = '".filter($_GET['id'])."' ORDER by id DESC");
?>
<div class="habblet-container ">
<div class="cbb clearfix notitle ">
<div id="article-wrapper"><h2>Comments <?php echo mysql_num_rows($getComments); ?></h2>
<div class="article-meta"></div>
 
<div class="article-body">
 
 
<?PHP
 
$p1 = 3; // thanks PHPAcademy for Pagination tuts <3
 
 
$pages = mysql_query("SELECT COUNT(id) FROM cms_comments");
 
 
$p2 = ceil(mysql_result($pages, 0) / $p1);
 
 
$page = (isset($_GET['page'])) ? (int)$_GET['page'] :  1;
 
 
$start = ($page - 1) * $p1;
 
if(mysql_num_rows($getComments) == 0) {
 
 
        echo "No comments for this article!";
 
    } else {
 
 
if($numrows!=0){
 
 
echo '<table width="528px">';
 
 
        while($Comments = mysql_fetch_array($getComments)){
 
        $getUserInfo = mysql_query("SELECT * FROM users WHERE username = '".$Comments['author']."'");
 
 
        $userInfo = mysql_fetch_array($getUserInfo);
 
 
                echo '
 
                <tr>
 
 
                  <td width="90px" valign="top"></div>
 
 
                  <div style="
 
height: 65px;
 
 
 
width: 50px;
 
 
float: left;
 
 
overflow: hidden;
 
 
 
">
 
 
                    <div style="float:left"><img position:absolute; src="http://www.habbo.fr/habbo-imaging/avatarimage?figure='.$userInfo['look'].'&size=s&direction=2&head_direction=3&gesture=sml"></div>
 
 
              </td>
 
                  <td width="427px" valign="top">
 
                  <i><a href="/me">'.$userInfo['username'].' </a></i>
 
 
                                      <br /><br />'.$Comments['comment'].'
 
                  </td>
 
 
                </tr>
 
        <tr>
 
 
                  <td width="80px" valign="top">
 
 
                  </td>
 
 
                              <td width="400px" align="right">
 
 
</div></div></div></div>
 
 
 
<br>
 
 
 
<div style="width:125%; height:1px; background-color:#ccc; margin-top:-17px;"></div>
 
 
          </td>
 
 
        </tr>';
 
 
        }
 
        echo '</table>';
      }
      ?>


Here is my error that I get



any idea what's wrong? :confused:
 

vaulient2

New Member
Mar 12, 2013
27
3
Omg guys , thank you the page works , but now I get this ,it won't show the comments and paginate?

Tidy the code up first and we will help you in more detail.
The code is supposed to be liek that , isn't it? I went through a few tut's on phpacademy
 

Markshall

Русский Стандарт
Contributor
Dec 18, 2010
2,638
2,393
Omg guys , thank you the page works , but now I get this ,it won't show the comments and paginate?


The code is supposed to be liek that , isn't it? I went through a few tut's on phpacademy
You must have put the } in the wrong place.

Indent your code properly and remove any unnecessary white-space is what I meant.
 

vaulient2

New Member
Mar 12, 2013
27
3
Cleaned up code

Code:
<?PHP
$p1 = 3;
$pages = mysql_query("SELECT COUNT(id) FROM cms_comments");
$p2 = ceil(mysql_result($pages, 0) / $p1);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] :  1;
$start = ($page - 1) * $p1;
if(mysql_num_rows($getComments) == 0) {
         echo "No comments for this article!";
     } else {
if($numrows!=0){
echo '<table width="528px">';
         while($Comments = mysql_fetch_array($getComments)){
         $getUserInfo = mysql_query("SELECT * FROM users WHERE username = '".$Comments['author']."'");
         $userInfo = mysql_fetch_array($getUserInfo);
                 echo '
                 <tr>
                  <td width="90px" valign="top"></div>
<div style="
height: 65px;
width: 50px;
float: left;
overflow: hidden;">
<div style="float:left"><img position:absolute; src="http://www.habbo.fr/habbo-imaging/avatarimage?figure='.$userInfo['look'].'&size=s&direction=2&head_direction=3&gesture=sml"></div>
               </td>
               <td width="427px" valign="top"><i><a href="/me">'.$userInfo['username'].' </a></i>
               <br /><br />'.$Comments['comment'].'
                   </td>
                 </tr>
         <tr>
                   <td width="80px" valign="top">
                   </td>
                               <td width="400px" align="right">
</div></div></div></div>
<br>
<div style="width:125%; height:1px; background-color:#ccc; margin-top:-17px;"></div>
           </td>
         </tr>';
         }
         echo '</table>';
       }
       ?>

Hope you can help me figure this out :)
 

Markshall

Русский Стандарт
Contributor
Dec 18, 2010
2,638
2,393
No comments were showing because you ran an if statement saying

PHP:
if ($numrows != 0)

$numrows hadn't even been declared so it wouldn't have shown anything.

As far as I know, this should work.

PHP:
<?php
$getComments = mysql_query("SELECT * FROM cms_comments WHERE article = '".filter($_GET['id'])."' ORDER by id DESC");
?>
<div class="habblet-container ">
<div class="cbb clearfix notitle ">
<div id="article-wrapper"><h2>Comments <?php echo mysql_num_rows($getComments); ?></h2>
<div class="article-meta"></div>
<div class="article-body">
<?PHP
$p1 = 3; // thanks PHPAcademy for Pagination tuts <3
$pages = mysql_query("SELECT COUNT(id) FROM cms_comments");
$p2 = ceil(mysql_result($pages, 0) / $p1);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] :  1;
$start = ($page - 1) * $p1;
if(mysql_num_rows($getComments) == 0) {
    echo "No comments for this article!";
} else {
    echo '<table width="528px">';
        while($Comments = mysql_fetch_array($getComments)){
            $getUserInfo = mysql_query("SELECT * FROM users WHERE username = '".$Comments['author']."'");
            $userInfo = mysql_fetch_array($getUserInfo);
                    echo '<tr>
                        <td width="90px" valign="top"></div>
                            <div style="height: 65px;width: 50px;float: left;overflow: hidden;">
                            <div style="float:left"><img position:absolute; src="http://www.habbo.fr/habbo-imaging/avatarimage?figure='.$userInfo['look'].'&size=s&direction=2&head_direction=3&gesture=sml"></div>
                        </td>
   
                        <td width="427px" valign="top">
                            <i><a href="/me">'.$userInfo['username'].' </a></i>
                            <br /><br />'.$Comments['comment'].'
                        </td>
                    </tr>
   
                    <tr>
                        <td width="80px" valign="top"></td>
   
                        <td width="400px" align="right">
                            </div></div></div></div>
                            <br/>
                            <div style="width:125%; height:1px; background-color:#ccc; margin-top:-17px;"></div>
                        </td>
                    </tr>';
        }
    echo '</table>';
}
?>
 

vaulient2

New Member
Mar 12, 2013
27
3
No comments were showing because you ran an if statement saying

PHP:
if ($numrows != 0)

$numrows hadn't even been declared so it wouldn't have shown anything.

As far as I know, this should work.

PHP:
<?php
$getComments = mysql_query("SELECT * FROM cms_comments WHERE article = '".filter($_GET['id'])."' ORDER by id DESC");
?>
<div class="habblet-container ">
<div class="cbb clearfix notitle ">
<div id="article-wrapper"><h2>Comments <?php echo mysql_num_rows($getComments); ?></h2>
<div class="article-meta"></div>
<div class="article-body">
<?PHP
$p1 = 3; // thanks PHPAcademy for Pagination tuts <3
$pages = mysql_query("SELECT COUNT(id) FROM cms_comments");
$p2 = ceil(mysql_result($pages, 0) / $p1);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] :  1;
$start = ($page - 1) * $p1;
if(mysql_num_rows($getComments) == 0) {
    echo "No comments for this article!";
} else {
    echo '<table width="528px">';
        while($Comments = mysql_fetch_array($getComments)){
            $getUserInfo = mysql_query("SELECT * FROM users WHERE username = '".$Comments['author']."'");
            $userInfo = mysql_fetch_array($getUserInfo);
                    echo '<tr>
                        <td width="90px" valign="top"></div>
                            <div style="height: 65px;width: 50px;float: left;overflow: hidden;">
                            <div style="float:left"><img position:absolute; src="http://www.habbo.fr/habbo-imaging/avatarimage?figure='.$userInfo['look'].'&size=s&direction=2&head_direction=3&gesture=sml"></div>
                        </td>
 
                        <td width="427px" valign="top">
                            <i><a href="/me">'.$userInfo['username'].' </a></i>
                            <br /><br />'.$Comments['comment'].'
                        </td>
                    </tr>
 
                    <tr>
                        <td width="80px" valign="top"></td>
 
                        <td width="400px" align="right">
                            </div></div></div></div>
                            <br/>
                            <div style="width:125%; height:1px; background-color:#ccc; margin-top:-17px;"></div>
                        </td>
                    </tr>';
        }
    echo '</table>';
}
?>
It does work , but it doesn't paginate but only to add another similar box in the box itself
 

vaulient2

New Member
Mar 12, 2013
27
3
Ok I followed the tut properly , the page works fine and the table within the table problem is fixedc , but now it still would not paginate

Code:
<?php
/*
Place code to connect to your DB here.
*/
include('config.php');// include your code to connect to DB.
$tbl_name="cms_comments";//your table name
// How many adjacent pages should be shown on each side?
$adjacents = 6;
/* 
  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 = "news.php";//your file name  (the name of this file)
$limit = 5;//how many items to show per page
$page = $_GET['page'];
if($page) 
$start = ($page - 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 comment FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1;//if no page var is given, default to 1.
$prev = $page - 1;//previous page is page - 1
$next = $page + 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 > 1) 
$pagination.= "<a href=\"$targetpage?page=$prev\">? previous</a>";
else
$pagination.= "<span class=\"disabled\">? previous</span>";
 
//pages
if ($lastpage < 7 + ($adjacents * 2))//not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))//enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"$targetpage?page=1\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2</a>";
$pagination.= "...";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
}
}
}
 
//next button
if ($page < $counter - 1) 
$pagination.= "<a href=\"$targetpage?page=$next\">next ?</a>";
else
$pagination.= "<span class=\"disabled\">next ?</span>";
$pagination.= "</div>\n";
}
?>
<?php
while($row = mysql_fetch_array($result))
{
echo '<table width="528px">';
        while($Comments = mysql_fetch_array($getComments)){
            $getUserInfo = mysql_query("SELECT * FROM users WHERE username = '".$Comments['author']."'");
            $userInfo = mysql_fetch_array($getUserInfo);
                    echo '<tr>
                        <td width="90px" valign="top"></div>
                            <div style="height: 65px;width: 50px;float: left;overflow: hidden;">
                            <div style="float:left"><img position:absolute; src="http://www.habbo.fr/habbo-imaging/avatarimage?figure='.$userInfo['look'].'&size=s&direction=2&head_direction=3&gesture=sml"></div>
                        </td>
   
                        <td width="427px" valign="top">
                            <i><a href="/me">'.$userInfo['username'].' </a></i>
                            <br /><br />'.$Comments['comment'].'
                        </td>
                    </tr>
   
                    <tr>
                        <td width="80px" valign="top"></td>
   
                        <td width="400px" align="right">
                            </div></div></div></div>
                            <br/>
                            <div style="width:125%; height:1px; background-color:#ccc; margin-top:-17px;"></div>
                        </td>
                    </tr>';
        }
    echo '</table>';
}
?>
 
<?=$pagination?>

 

Users who are viewing this thread

Top