【问题标题】:php mysql html pagination not workingphp mysql html分页不起作用
【发布时间】:2015-11-25 20:17:48
【问题描述】:

我正在尝试进行分页工作,除了分页之外一切正常。

我正在使用 PHP、HTML 和 MYSQL。我可以很好地获取记录,但网页上的所有记录都会显示,我只想将其限制为每页显示 10 条。

不知道我在这里做错了什么。

<html>
<link rel="stylesheet" type="text/css" href="main.css">
<head>
<title>Paging Using PHP</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'useer';
$dbpass = 'passwoord';
$rec_limit = 10;

$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
mysql_select_db('disks');
/* Get total number of records */
$sql = "SELECT count(id) FROM hdd ";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($retval, MYSQL_NUM );
$rec_count = $row[0];

if( isset($_GET{'page'} ) )
{
   $page = $_GET{'page'} + 1;
   $offset = $rec_limit * $page ;
}
else
{
   $page = 0;
   $offset = 0;
}

        echo '<h3>',Table,'</h3>';

$left_rec = $rec_count - ($page * $rec_limit);

$sql = "SELECT cust, manu, model, serial, capacity, firmware, deviceid, ataver, ltime, date, ourref, result FROM hdd";
       "FROM hdd".
       "LIMIT $offset, $rec_limit";

$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
echo '<table cellpadding="0" cellspacing="0" class="db-table">';
echo '<tr><th>Customer</th> <th>HDD Type</th> <th>Model</th> <th>Serial</th> <th>Size</th> <th>Firmware</th> <th>Device ID</th> <th>ATA Ver</th> <th>Manufactured On</th> <th>date</th> <th>ourref</th> <th>result</th></tr>';

while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo '<tr>';
$i=0;
                        foreach($row as $key=>$value) {
 if($i==10) break;
                                echo '<td>',$value,'</td>';
                        }
                        echo '</tr>';
}
                echo '</table><br />';
if( $page > 0 )
{
   $last = $page - 2;
   echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a> |";
   echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
}
else if( $page == 0 )
{
   echo "<a href=\"$_PHP_SELF?page=$page\">Next 10 Records</a>";
}
else if( $left_rec < $rec_limit )
{
   $last = $page - 2;
   echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>";
}
mysql_close($conn);
?>

我怎样才能让它每页只显示 10 条记录?

提前致谢。

【问题讨论】:

  • 不应该是$_GET['page']而不是$_GET{'page'}吗?
  • 不要使用mysql_* 函数,它们已经过时了。请改用PDOmysqli

标签: php html mysql pagination


【解决方案1】:

为什么你使用 $_GET{'page'}? 将 $_GET{'page'} 更改为 $_GET['page']。

【讨论】:

    【解决方案2】:

    我认为问题出在您的 SQL 查询上。你有:

    $sql = "SELECT cust, manu, model, serial, capacity, firmware, deviceid, ataver, ltime, date, ourref, result FROM hdd";
           "FROM hdd".
           "LIMIT $offset, $rec_limit";
    

    它应该在哪里:

    $sql = "SELECT cust, manu, model, serial, capacity, firmware, deviceid, ataver, ltime, date, ourref, result FROM hdd ";
    $sql .= "LIMIT $offset, $rec_limit";
    

    我也同意约翰所说的。你有 $_GET{'page'} 并且在两个地方都应该是 $_GET['page']。

    【讨论】:

    • 谢谢,正确。它现在可以正常工作了。
    猜你喜欢
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2018-04-20
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多