【发布时间】:2017-08-29 19:50:20
【问题描述】:
我正在实施一个网站,管理员可以在其中维护库存。我在 html 表中显示数据库中的库存。我使用分页来每页显示 10 条记录。我希望当我在第 1 页时,它显示“显示总记录的 1-10”,当我在第 2 页时,它显示“显示总记录的 11-20”,反之亦然。 代码:
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("login", $link);
$result = mysql_query("SELECT COUNT(*) FROM add_stock");
$row = mysql_fetch_row($result);
$num = $row[0];
?>
<table align="center" border="0" id="myTable" class="table table-striped table-bordered table-list">
<tr>
<th>Sr.No</th>
<th>Product Code</th>
<th>Brand</th>
<th>Price</th>
<th>Gender</th>
<th>Category</th>
<th>Material</th>
<th>Size</th>
<th>Description</th>
<th>Quantity</th>
<th><b>Image</b></th>
</tr>
$num_rec_per_page=10;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $num_rec_per_page;
$sql = "SELECT * FROM add_stock ORDER BY id DESC LIMIT $start_from, $num_rec_per_page";
$rs_result = mysql_query ($sql); //run the query
$total_records = mysql_num_rows($rs_result); //count number of records
$total_pages = ceil($total_records / $num_rec_per_page);
$next_page = $page + 1;
$prev_page = $page - 1;
$i= $start_from;
$start=1;
while ($result=mysql_fetch_array($rs_result) )
{
?>
<tr>
<td><?php echo $i+$start; ?></td>
<td><?php echo $result['id']; ?></td>
<td><?php echo $result['brand_name']; ?></td>
<td><?php echo $result['price']; ?></td>
<td><?php echo $result['gender_name']; ?></td>
<td><?php echo $result['category_name']; ?></td>
<td><?php echo $result['material_name']; ?></td>
<td><?php echo $result['size_name']; ?></td>
<td><?php echo $result['dress_description']; ?></td>
<td><?php echo $result['dress_quantity']; ?></td>
<td><a href="javascript:window.open('<?php echo $result['image'] ?>','mypopuptitle', '_parent')" >View Image</a></td>
</tr>
<?php
$i++;
} ?>
</table>
<?php
$sql = "SELECT * FROM add_stock";
$rs_result = mysql_query($sql); //run the query
$total_records = mysql_num_rows($rs_result); //count number of records
$total_pages = ceil($total_records / $num_rec_per_page);
?>
<div style="margin-left: 5px;">
<div class="pagination">
<?php
echo "<a href='viewstock.php?page=1'><b>«</b></a>";
if ($page==1) {
$page=1;
}
else{
echo "<a href='viewstock.php?page=$prev_page'><b>Prev</b></a>"; }
for ($i=1; $i<=$total_pages; $i++) {
echo "<a href='viewstock.php?page=".$i."'><b>".$i."</b></a>";
}
if ($page==$total_pages) {
$page=$total_pages;
}
else{
echo "<a href='viewstock.php?page=$next_page'><b>Next</b></a>"; }
echo "<a href='viewstock.php?page=$total_pages'><b>»</b></a> ";
?>
</div>
</div>
<p>Displaying <?php echo $start ?> - <?php echo $total_records ?> of Records: <?php echo $num ?></p>
【问题讨论】:
-
我希望它应该在段落标签中显示文本(即在表格标签之前的顶部),在第 1 页显示 1 - 10 条记录,当我在第 2 页时,它应该显示文本显示 11 - 20 条记录
-
使用
mysql_query?还是在 2017 年?它已被弃用多年,并在 PHP7 中完全删除,主要是由于安全问题。例如,一个主要问题是它不允许您创建参数化查询和准备好的语句,因此,像您这样的代码非常容易受到 SQL 注入攻击,这些攻击可用于窃取、破坏或破坏您的数据。你真的应该切换到mysqli或PDOa.s.a.p。 bobby-tables.com 对风险进行了解释,并提供了一些如何安全编写查询的示例。 -
除了那个可怕的表演之外,您已经告诉我们您想要什么,但没有告诉我们代码的问题所在。它现在做什么?
-
它不显示该文本它只显示记录总数但不显示总记录的 1-10
-
好吧,那是因为您还没有编写任何可以做到这一点的代码。你真的尝试过吗?您只需要输出开始值和结束值(您必须知道,才能运行查询)。看起来您可能直到代码中的较低位置才计算这些值,在这种情况下,您可以将计算向上移动,以便在输出的必要部分使用它们。
标签: php html pagination