php mysql 中的分页

问题描述 投票:0回答:5

我正在尝试制作一个包含电影的网站,一切都很好,但我只有一个小问题,每当我制作一个网站时,我都会在本地计算机上进行所有工作测试,然后上传网络、代码下面是带有查询的分页,它在 WAMP(本地)中运行良好。 但是当我将分页代码上传到我的网络服务器时,它说不存在。 它显示了 else 部分,有什么问题吗?

<?php

$per_page = 35; 
 $page = 1;
 if (isset($_GET['page'])) 
 {
  $page = intval($_GET['page']); 
  if($page < 1) $page = 1;
}

 $start_from = ($page - 1) * $per_page; 

$con= mysql_connect("localhost","sarya_asad","Thisisfor123");
 mysql_select_db('saryaal_com_movies',$con);

 $current_items = mysql_query( "SELECT * FROM `english` LIMIT $start_from, $per_page");
 if( mysql_num_rows($current_items) > 0)
 {
  while($item = mysql_fetch_assoc($current_items))
  {

  ?>
    <tr>
        <td> <strong><a href="english/english-preview.php?id=<?php echo$item['id']?>" ><?php echo $item['title'] ;?></a>    </strong></td>
        <td> <strong> <?php echo $item['year'] ;?>  </strong></td>
        <td> <strong> <?php echo $item['quality'] ;?>   </strong> </td>
    </tr>
    <tr><td>
    <?php
    }
 }
 else
 {
  echo 'this page does not exists'; 
 }

 $total_rows = mysql_query("SELECT COUNT(*) FROM `english`");
 $total_rows = mysql_fetch_row($total_rows);
 $total_rows = $total_rows[0];

 $total_pages = $total_rows / $per_page;
 $total_pages = ceil($total_pages); # 19/5 = 3.8 ~=~ 4

 for($i = 1; $i  <= $total_pages; ++$i)
 {
  echo "<a href='temp2.php?page=$i' class='pagNumActive'>$i</a> &nbsp;&nbsp;";
 }
 ?>
php mysql database pagination
5个回答
1
投票
<?php if($Strkeyword=="" AND $StrLoc=="" AND $StrMinsal=="-1" AND $StrMaxsal=="-1" AND $StrMax_exp=="maximum" AND $Strcategory=="" AND $Strjobtype=="") {
 $sql=mysql_query("select * from job where AND status='Active'");
 } 
$per_page = 5;
 $page = 1; 
if (isset($_GET['page'])) { 
$page = intval($_GET['page']);
 if($page < 1) $page = 1; 
} 
$start_from = ($page - 1) * $per_page;
 if($Strkeyword=="" AND $StrLoc=="" AND $StrMinsal=="-1" AND $StrMaxsal=="-1" AND $StrMax_exp=="maximum" AND $Strcategory=="" AND $Strjobtype=="") 
{ 
$current_items=mysql_query("select * from job LIMIT $start_from, $per_page"); } $start_from, $per_page");
 if( mysql_num_rows($current_items)>0) { while($arr=mysql_fetch_array($current_items)) {
?> 

<?php include("include/result.php") ?>// result u want to display 
<?php 
} 
} else { 
echo 'Data does not exists'; } 
if($Strkeyword=="" AND $StrLoc=="" AND $StrMinsal=="-1" AND $StrMaxsal=="-1" AND $StrMax_exp=="maximum" AND $Strcategory=="" AND $Strjobtype=="") {
 $total_rows=mysql_query("select COUNT(*) from job where AND status='Active'");
 } 
$total_rows = mysql_query("SELECT COUNT(*) FROM job");
 $total_rows = mysql_fetch_row($total_rows); 
$total_rows = $total_rows[0]; 
$total_pages = $total_rows / $per_page;
 $total_pages = ceil($total_pages);
 # 19/5 = 3.8 ~=~ 4 
echo "<div style='margin-left:280px;'>";
 echo "Page : ";
 for($i = 1; $i <= $total_pages; $i++) {
 echo "[<a style='text-decoration:none' href='search_result.php?page=$i' class='pagNumActive'>$i</a>&nbsp;]"; 
} 
echo "</div>"; 
?> 

0
投票

这是你的问题:

$con= mysql_connect("localhost","sarya_asad","Thisisfor123");
    mysql_select_db('saryaal_com_movies',$con);

您需要更改主机详细信息。

localhost
是您计算机上的本地服务器。


0
投票

改变这个

 $start_from = ($page - 1) * $per_page;

 $start_from = ($page) * $per_page;

0
投票

你可能想使用类似的东西:

$per_page = 35;
$start_from = $page * $per_page - $per_page;

0
投票

尝试这个分页逻辑:

您的目标是抵消您想要在每个页面上显示的图像数量。

假设您想在一个页面上显示 6 个电影缩略图...您需要:

$videos_per_page = 6
$pageNumber = (isset($_GET['page']) ? ($_GET['page']) : 1);

你的偏移量将是:

$offset = $videos_per_page * $pageNumber 

(6 个视频 * 第 0 页...因此您要偏移 0 个视频。这很好,因为您想在第 0 页上显示数据结构中的前 6 个视频)。


现在您有了偏移值...您需要将数组指针设置到正确的位置...循环遍历存储电影的数据库行并按偏移值移动指针...将其存储在 $videos_to_offset 中...

while ($videos_per_page < $offset && ($row = $Query_Result->fetch_assoc())) {
    $videos_to_offset++;
}

现在您可以循环遍历数据库行,从偏移数组指针停止的位置输出视频:

    $video_counter = 0;
    while ($video_counter < $videos_per_page && ($row = $Query_Result->fetch_assoc())) {

        echo   $row['videopath'];
        $video_counter++;
}

类似这样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.