【问题标题】:PHP - Pagination and place results is a tablePHP - 分页和放置结果是一个表格
【发布时间】:2012-03-13 03:55:21
【问题描述】:

我已经尝试过一些分页,但它给了我非常意想不到的结果....

第一个是它在分页的第一页上似乎覆盖了 CSS 并将所有 div 对齐到页面的右侧...当您然后单击“下一步”查看接下来的三个结果和所以页面会按照 CSS 告诉它返回!

第二个问题是显示结果的表格似乎不起作用。分页每页上的第一个结果在表格中,接下来的两个结果(每页三个结果)显示在页面上但是在下面而不是在表格中!

代码很长,但我们开始吧:

<?php
session_start();
if ( !isset($_SESSION['username']))
{
header("Location:index.php");
exit();
}

//connect to database

require "dbconn.php";


$per_page = 3;
$start = $_GET['start'];





$sort = @$_POST['order'];  
if (!empty($sort)) {
$query = "SELECT bookname, bookauthor, bookpub, bookisbn
            FROM booktable
            ORDER BY ".mysql_real_escape_string($_POST['order'])." ASC";
}
 else { 
$query = "SELECT bookname, bookauthor, bookpub, bookisbn 
                FROM booktable 
                ORDER BY bookname ASC"; 
}


$results = mysql_query($query)
            or die (mysql_error());

$record_count = mysql_num_rows($results);
if (!$start)
   $start = 0;

$get = mysql_query("SELECT * FROM booktable LIMIT $start, $per_page");
?>
<?php
if (isset($_GET['showerror']))
$errorcode = $_GET['showerror'];
else
$errorcode = 0;
?>

那我就删掉所有不需要的html

<div id="mid">

<?php
echo "<table border='2px'>";
echo "<tr>";
echo "<th>";

echo "</th>";
echo "<th>";
echo "Book Title";
echo "</th>";
echo "<th>";
echo "Book Author";
echo "</th>";
echo "<th>";
echo "Book Publisher";
echo "</th>";
echo "<th>";
echo "Book ISBN";
echo "</th>";
echo "<th>";

echo "</th>";
echo "</tr>";
while ($row = mysql_fetch_assoc($get))
{
 // get data
 $bookname = $row['bookname'];
 $bookauthor = $row['bookauthor'];
 $bookpub = $row['bookpub'];
 $bookisbn = $row['bookisbn'];



    echo "<tr>";
    echo "<td>";
    echo "<a href='addtolist.php?bookname=".$bookname."&bookauthor=".$bookauthor."&bookpub=".$bookpub."&bookisbn=".$bookisbn."'>Add to basket</a>";

    echo "</td>";

    echo "<td>";
    echo $bookname;
    echo "</td>";

    echo "<td>";
    echo $bookauthor;
    echo "</td>";

    echo "<td>";
    echo $bookpub;
    echo "</td>";

    echo "<td>";
    echo $bookisbn;
    echo "</td>";

    echo "</tr>";
    echo "</table>";

}

$prev = $start - $per_page;
$next = $start + $per_page;

if (!($start<=0))
       echo "<a href='products.php?start=$prev'>Prev</a> ";

       //set variable for first page number
$i=1;

//show page numbers
for ($x = 0; $x < $record_count; $x = $x + $per_page)
{
 if ($start != $x)
   echo "<a href='products.php?start=$x'>$i</a>";
 else
    echo "<a href='products.php?start=$x'><b>$i</b></a>";
 $i++;
}

//show next button
if (!($start >= $record_count - $per_page))
       echo "<a href='products.php?start=$next'>Next</a>";
?>



<?php echo $record_count; ?>

这是页面的外观(图 1)(表格边框显示问题)

正如我之前所说,当列表首次显示并且页面最终看起来像这样时,我也遇到了问题:(image2)

你可以看到它们有什么不同!

我希望我说得通!

【问题讨论】:

    标签: php html pagination html-table


    【解决方案1】:

    对于初学者,您的&lt;/table&gt; 循环中有while 标记。改变它,看看其他一切是否到位。

    【讨论】:

    • 太棒了,谢谢你……它总是我找到的最简单的东西!第一页上的任何想法看起来有点奇怪?表格解决了我的表格问题,但看起来很奇怪的第一页仍然存在(图片)
    • 问题是未定义的索引“开始”,但我不确定如何更改或修复此问题
    • 别担心,用 !isset 修复以设置从虚拟布尔值开始!
    猜你喜欢
    • 2016-02-17
    • 2012-05-19
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    相关资源
    最近更新 更多