PHP 查询,隐藏内容Microsoft sql


Php query, hide content Microsoft sql

我正在尝试对我正在处理的博客进行一些分页,它正在工作,现在我已经添加了,因此我可以从索引.php?postID=1,2,3等网址访问每个单独的帖子。

但是,有一件事没有按照我想要的方式工作,当我转到带有该 url 的帖子时,该帖子将加载到顶部,但其他 2 个分页帖子也会显示,所以我的问题很简单:

当我只想转到单个帖子时,如何不加载这些帖子?

这就是脚本现在的样子,我知道在更有经验的程序员眼中这可能是一团糟,请记住,我是一个想要学习:)的菜鸟

<?php
        error_reporting(E_ALL);
        ini_set('display_errors', 1);
        $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 "Inga rader hittades.";
            }
            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>&nbsp;&nbsp;");
                }
            }
            $tsql = "SELECT * FROM 
            (SELECT ROW_NUMBER() OVER(ORDER BY blogID DESC) 
               AS RowNumber,
               blog_title,    
               blog_post,
               blog_author,
               blog_category,
               blog_date,
               blogID,
               blog_short
               FROM blog_posts)
AS Temp
WHERE RowNumber BETWEEN ? AND ?";
$stmt2 = $conn->prepare($tsql);
 if (isset($_GET['postID'])){
$value = $_GET['postID'];
$result = "SELECT * FROM blog_posts WHERE blogID='$value'";
$aa =  $conn->query($result);
$post = $aa->fetch(PDO::FETCH_NUM);
if($post[0] == 0)
{
    echo "Inget inlägg med det ID't hittades!";
}
else
{  
echo  "$post[1]"; 
echo "$post[2]";
echo "$post[3]"; 
echo  date_format( new DateTime($post['5']), 'd M Y, H:i' ); 
echo  "$post[4]"; 
echo  "$post[0]";
}
}
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[7]";
echo '<a href="?postID='.$row[6].'">Read more</a>'; 
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() ) ); 
}

编辑:

if (isset($_GET['postID']))
{
$id = $_GET['postID'];
$tsql2 = "SELECT * FROM blog_posts WHERE blogID=':id'";
$stmt3 = $conn->prepare($tsql2);
$stmt3->execute(array(':id' => $id));
while($post = $stmt3->fetch(PDO::FETCH_BOTH) )
{ 

回声$post 1-6 在这里

如果你只想显示单个帖子或只显示分页的帖子,你应该像这样做:

if (isset($_GET['postID'])) {
  //single post logic
} else {
  //paged posts logic
}