分页Microsoft SQL和PHP

时间:2016-03-01 18:42:02

标签: php sql-server pdo

今天早些时候尝试了它,但是我已经重新完成了脚本并且我得到了部分工作,但是它只显示了所有页面上的最新2个帖子(只有两页atm因为只有4个博客帖子)那么我在这里失踪的是什么?

<?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?pageID=$i";
        print("<a href=$pageNum>$i</a>&nbsp;&nbsp;");
    }
    echo "<br/><br/>";
}

$tsql = "SELECT * FROM 
            (SELECT ROW_NUMBER() OVER(ORDER BY blogID desc) 
                         AS RowNumber, 
                            blog_title,    
                            blog_post,
                            blog_author,
                            blog_category,
                            blog_date
         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[0]"; 
           echo "<h2 style=text-align:center>", $row[1],"</h2>"; 
           echo "$row[2]"; 
           echo "$row[3]"; 
           echo "$row[4]"; 
           echo date_format( new DateTime($row['5']), 'd M y, H:i' ); 
}
}
catch(Exception $e)
{ 
die( print_r( $e->getMessage() ) ); 
}
?>

最后,为脚本中的博客类别添加分页还需要做更多的工作吗?当脚本增长到15行以下时,我有点失明

1 个答案:

答案 0 :(得分:3)

我只是把它变成一个社区维基,因为我不想从中获得任何东西。

  

“?pageID,你正在做$ _GET ['pageNum']。我会调用那个未定义的...并且可能依赖于$ pageNum。它无法正常工作。”

  

“@ Fred-ii-哈哈我知道这很简单,就像我写的那样,经过15行后我才会失明...非常感谢你看看它!我很感激! - per卡尔斯特罗姆“

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。