分页微软SQL和PHP

分页微软SQL和PHP

问题描述:

今天早些时候在它没有企图,但是我已经重新做了剧本,我得到了它的部分工作,但它只是显示在所有页面(只有两页的ATM的Cuz有最新的2个职位只有4篇博文)所以我在这里错过了什么?分页微软SQL和PHP

<?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())); 
} 
?> 

,最后是更多的工作,以藏汉包括分页为我的博客的categorys脚本?我得到有点盲目脚本时长低于15线,哈

+1

'?pageID'和你正在做的'$ _GET [ '页次']'。我会叫'undefined ...',可能依靠'$ pageNum'。它不这样工作。 –

+0

@ Fred-ii-哈哈我知道这件事很简单,就像我写的那样,15行之后我就会失明......非常感谢你看看它!我很感激! –

+0

嘿嘿,欢迎您;-) –

我就使这个社区的wiki,因为我不想获得来自这样的东西。

“?的pageID和你正在做$ _GET [‘页次’。我会打电话的是不确定的...,可能依赖于$页次。它不工作的方式。”


“@弗雷德-II-哈哈我知道这是一些简单的像,作为我写的,后15行,我得到盲人......非常感谢为它考虑看看!我很感激! - 每卡尔斯特罗姆”


添加error reporting到您的文件(S)的顶部,这将有助于找到错误。

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

// Then the rest of your code 

旁注:显示错误应该只在分期完成,并且从不生产。

+0

,如果我可以说,想先在页面上显示的最高数量,现在它显示1 2 3 4等,如果我要像5 4 3 2 1代替,如何将我可接近? –

+0

@perkällström你需要扭转阵列http://php.net/manual/en/function.array-reverse.php –

+0

是啊,我想通了,得到它了,但IM struggeling升技做,因为我希望哈哈:( –