2016-02-29 101 views
0

好吧,所以我得到了这个网站即时通讯工作,以更好地与自己的PHP,我得到了一个类别系统工作在一个开关和分页,但我不能真正得到它的工作一起。分页和类别不一起工作

到目前为止,我从我的数据库中获取了所有4篇文章,并将其显示在“blog.php”页面上,并且分页使其每次只显示1个结果,blog.php?page = 2显示下一个等等,而且这一切都很好。

现在点击“test”类别将在页面“blog.php?category = 2”上显示2条结果,分页仍显示1,但点击下一页“blog.php?category = 2 ?页= 2" 将导致它给予警告

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\rusting\blog.php on line 284 

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\rusting\blog.php on line 325 

我得到的代码是这样

<?php switch($category): 
 
case 0: ?> 
 
<?php 
 
\t \t 
 
//Fetch from database first 1 items which is its limit. For that when page open you can see first 10 items. 
 
$query=mysqli_query($db," 
 

 

 
SELECT blog.id, blog.title, blog.date, blog.content, blog.image, blog.author_id, blog.category, blog.short_desc, category.id, category.name 
 
FROM blog 
 
INNER JOIN category 
 
ON blog.category=category.id 
 
ORDER BY blog.id DESC 
 
LIMIT $start, $limit 
 

 
"); 
 

 
//print 1 items 
 
while($result=mysqli_fetch_array($query)) 
 
{ 
 
\t 
 

 
echo " 
 
\t <!-- Begin Post --> 
 
     <div class='post'> 
 
      
 
      <!-- Begin Post Info --> 
 
      <div class='post-info'> 
 
      <!-- Begin Date --> 
 
      <div class='post-date'> <span class='day'>15</span> <span class='month'>FEB</span> <span class='year'>2011</span> </div> 
 
      <!-- End Date --> 
 
      <!-- Begin Title --> 
 
      <div class='post-title'> 
 
       <h1><a href='post.php?id=".$result['id']."'> 
 
\t \t \t ".$result['title']." 
 
\t \t \t </a></h1> 
 
       <div class='post-meta'> <span class='comments'>13 Comments</span> <span class='categories'><a href='#'>".$result['name']."</a></span> </div> 
 
      </div> 
 
      <!-- End Title --> 
 
      </div> 
 
      <!-- End Post Info --> 
 
      
 
      <div class='post-text'> 
 
\t \t <div class='post-img'><a href='post.php?id=".$result['id']."'><img src='style/images/blog/".$result['image']."' alt='' /></a></div><br/> 
 
      <p>".$result['short_desc']." <a class='more' href='post.php?id=".$result['id']."'>Læs mere →</a></p> 
 
      </div> 
 
      <!-- End Text --> 
 
     </div> 
 
     <!-- End Post --> 
 
"; 
 
\t 
 

 
} 
 

 
//fetch all the data from database. 
 
$rows=mysqli_num_rows(mysqli_query($db,"select * from blog")); 
 
//calculate total page number for the given table in the database 
 
$total=ceil($rows/$limit); 
 
?> 
 

 

 

 
<br><br><br><br> 
 

 
<?php if($page>1) 
 
{ 
 
\t //Go to previous page to show previous 10 items. If its in page 1 then it is inactive 
 
\t echo "<li><a href='?page=".($page-1)."' class='button'>PREVIOUS</a></li>"; 
 
} 
 
if($page!=$total) 
 
{ 
 
\t ////Go to previous page to show next 10 items. 
 
\t echo "<li><a href='?page=".($page+1)."' class='button'>NEXT</a></li>"; 
 
} 
 
?> 
 

 

 
<br><br><br><br> 
 

 
<div class="page-navi"> 
 
<ul> \t \t 
 
<?php 
 
//show all the page link with page number. When click on these numbers go to particular page. 
 
\t \t for($i=1;$i<=$total;$i++) 
 
\t \t { 
 
\t \t \t if($i==$page) { echo "<li><a class='current'>".$i."</a></li>"; } 
 
\t \t \t 
 
\t \t \t else { echo "<li><a href='?page=".$i."'>".$i."</a></li>"; } 
 
\t \t } 
 
?> 
 
</ul> 
 
</div> \t \t 
 
\t \t 
 

 
<?php break;?> 
 

 

 

 

 

 
<?php case $category: ?> 
 
<?php 
 
//Fetch from database first 1 items which is its limit. For that when page open you can see first 10 items. 
 
$query=mysqli_query($db," 
 

 

 
SELECT blog.id, blog.title, blog.date, blog.content, blog.image, blog.author_id, blog.category, blog.short_desc, category.id, category.name 
 
FROM blog 
 
INNER JOIN category 
 
ON blog.category=category.id 
 
WHERE category=".$category." 
 
ORDER BY blog.id DESC 
 
LIMIT $start, $limit 
 
"); 
 

 
//print 1 items 
 
while($result=mysqli_fetch_array($query)) 
 
{ 
 
\t 
 
echo " 
 
\t <!-- Begin Post --> 
 
     <div class='post'> 
 
      
 
      <!-- Begin Post Info --> 
 
      <div class='post-info'> 
 
      <!-- Begin Date --> 
 
      <div class='post-date'> <span class='day'>15</span> <span class='month'>FEB</span> <span class='year'>2011</span> </div> 
 
      <!-- End Date --> 
 
      <!-- Begin Title --> 
 
      <div class='post-title'> 
 
       <h1><a href='post.php?id=".$result['id']."'> 
 
\t \t \t ".$result['title']." 
 
\t \t \t </a></h1> 
 
       <div class='post-meta'> <span class='comments'>13 Comments</span> <span class='categories'><a href='#'>".$result['name']."</a></span> </div> 
 
      </div> 
 
      <!-- End Title --> 
 
      </div> 
 
      <!-- End Post Info --> 
 
      
 
      <div class='post-text'> 
 
\t \t <div class='post-img'><a href='post.php?id=".$result['id']."'><img src='style/images/blog/".$result['image']."' alt='' /></a></div><br/> 
 
      <p>".$result['short_desc']." <a class='more' href='post.php?id=".$result['id']."'>Læs mere →</a></p> 
 
      </div> 
 
      <!-- End Text --> 
 
     </div> 
 
     <!-- End Post --> 
 
"; 
 
\t 
 

 
\t 
 
} 
 

 
//fetch all the data from database. 
 
$rows=mysqli_num_rows(mysqli_query($db,"select * from blog WHERE category=".$category."")); 
 
//calculate total page number for the given table in the database 
 
$total=ceil($rows/$limit); 
 

 

 

 

 

 
?> 
 

 

 
<br><br><br><br> 
 

 

 
<?php if($page>1) 
 
{ 
 
\t //Go to previous page to show previous 10 items. If its in page 1 then it is inactive 
 
\t echo "<li><a href='?category=".$category."?page=".($page-1)."' class='button'>PREVIOUS</a></li>"; 
 
} 
 
if($page!=$total) 
 
{ 
 
\t ////Go to previous page to show next 10 items. 
 
\t echo "<li><a href='?category=".$category."?page=".($page+1)."' class='button'>NEXT</a></li>"; 
 
} 
 
?> 
 

 

 

 
<br><br><br><br> 
 

 
<div class="page-navi"> 
 
<ul> \t \t 
 
<?php 
 
//show all the page link with page number. When click on these numbers go to particular page. 
 
\t \t for($i=1;$i<=$total;$i++) 
 
\t \t { 
 
\t \t \t if($i==$page) { echo "<li><a class='current'>".$i."</a></li>"; } 
 
\t \t \t 
 
\t \t \t else { echo "<li><a href='?category=".$category."?page=".$i."'>".$i."</a></li>"; } 
 
\t \t } 
 
?> 
 
</ul> 
 
</div> \t \t 
 

 
<?php break;?> 
 
<?php endswitch;?> \t

+0

[检查此链接](http://stackoverflow.com/questions/3705318/simple-php-pagination-script)你会得到你需要的信息 – Orion

回答

0

好了,这是很SIMP乐,我不能相信我以前没有意识到这一点。我只是需要更改为其生成的链接。

我正试图访问类别2的第2页与“blog.php?category = 2?page = 2” 对于这一切工作,我只需要将其更改为“blog.php?category = 2 &页面= 2“