【发布时间】:2016-03-03 17:26:55
【问题描述】:
我编写了一个分页脚本来分页我博客中的所有帖子。现在我想创建和端点,以便我可以转到mydomain/index.php?blogID1、mydomain/index.php?blogID2、mydomain/index.php?blogID3、mydomain/index.php?blogID4 等。
根据我当前的脚本,我在哪里可以阅读有关这样做的信息,以及如何以最简单的方式实现它:
<?php
$rowsPerPage = 2;
try
{
$conn = new PDO( "sqlsrv:server=localhost ; Database=blog", "******", "*******");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(Exception $e)
{
die( print_r( $e->getMessage() ) );
}
try
{
$tsql = "SELECT COUNT(blogID) FROM blog_posts";
$stmt = $conn->query($tsql);
$rowsReturned = $stmt->fetch(PDO::FETCH_NUM);
if($rowsReturned[0] == 0)
{
echo "No rows returned.";
}
else
{
$numOfPages = ceil($rowsReturned[0]/$rowsPerPage);
for($i = 1; $i<=$numOfPages; $i++)
{
$pageNum = "index.php?pageNum=$i";
print("<a href='$pageNum' class='btn btn-primary active btn-sm'>$i</a> ");
}
}
$tsql = "SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY blogID DESC)
AS RowNumber,
blog_title,
blog_post,
blog_author,
blog_category,
blog_date,
blogID
FROM blog_posts)
AS Temp
WHERE RowNumber BETWEEN ? AND ?";
$stmt2 = $conn->prepare($tsql);
if(isset($_GET['pageNum']))
{
$highRowNum = $_GET['pageNum'] * $rowsPerPage;
$lowRowNum = $highRowNum - $rowsPerPage + 1;
}
else
{
$lowRowNum = 1;
$highRowNum = $rowsPerPage;
}
$params = array(&$lowRowNum, &$highRowNum);
$stmt2->execute(array($lowRowNum, $highRowNum));
while($row = $stmt2->fetch(PDO::FETCH_NUM) )
{
echo "$row[1]";
echo "$row[2]";
echo "$row[3]";
echo date_format( new DateTime($row['5']), 'd M Y, H:i' );
echo "$row[4]";
echo "$row[6]";
}
}
catch(Exception $e)
{
die( print_r( $e->getMessage() ) );
}
?>
【问题讨论】:
-
如果你在谷歌上搜索并尝试了一些东西会有所帮助。 SO 更多的是用于解决问题,而不是提供解决方案。
-
嗨!欢迎来到 StackOverflow!不幸的是,您的问题读起来很像“请实现 x 功能”请求,这不适合 StackOverflow。请参考这个页面来学习如何写出超有效的问题! stackoverflow.com/help/mcve
-
@AleksanderLidtke 我已经做了很多谷歌搜索,但我不知道从哪里开始......我不想让任何人为我写这个,我只是想要一些正确的方向/一些提示我不知道任何人甚至可以编写基本的 html 代码我认为这是我获得一些体面指针的最佳选择
标签: php sql-server pdo query-string