PHP MsSQL pageing
Sitter och kodar en blogg.. mest för att lära mig, har fått till "pageing" som jag vill ha förutom en grej, den räknar inläggen 1 2 3 4 men jag vill ha högsta numret först så det blir 4 3 2 1 om ni förstår, har försökt få till en array reverse men de vill sig inte riktigt och man kan säga att jag har kört fast...
<?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 "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 asc)
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[1];
echo "$row[2]";
echo $row[3]";
echo date_format( new DateTime($row['5']), 'd M Y, H:i' );
echo "$row[4]";
echo "$row[0]";
}
}
catch(Exception $e)
{
die( print_r( $e->getMessage() ) );
}
?>
om jag ändrar
$tsql = "SELECT * FROM
(SELECT ROW_NUMBER() OVER(ORDER BY blogID asc)
Till DESC istället som jag ska ha egentligen så får jag nyaste inlägget först som det ska vara men det står fortfarande att det är inlägg 1 så det hjälper mig inte det minsta
några förslag?
Citera om du vill ha svar :)