Помощ относно скрипт за странициране

Wayz

Registered
Добър вечер на всички. Значи имам проблем относно ТОЗИ скрипт за странициране. Общо взето проблема ми е, че когато добавя новина тя не излиза на първата страница а на последната. Молбата ми към вас е ако е възможно да ми посочите къде има грешка в кода.

Ето как изглежда кода при мен:
PHP:
<?php 
include ('config.php');

// определяме колко реда да ни показва. В случая 20 на страница. 

$broinastranica = 2; 

// от коя страница да почне да показва.Може да искаме да е от втора или от последна. 

$pageNum = 1; 

// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page'] 

if(isset($_GET['page'])) 
{ 
$pageNum = $_GET['page']; 
} 

//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2 
// ще покаже от 20 до 40-ти ред. 
$redove = ($pageNum - 1) * $broinastranica; 
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page'] 
$query = " SELECT novina,avtor,zaglavie, id FROM news " . 
" LIMIT $redove, $broinastranica"; 
$result = mysql_query($query) or die('Error, query failed'); 

echo "<table border=1>"; 
// print-ваме посочените редове в таблица. 
while($row = mysql_fetch_array($result)) 
{ 
print $row["zaglavie"]; 
print $row["novina"]; 
echo'<br>
<hr>
Автор: '; print $row["avtor"]; echo'   <br>'; 
} 

echo"</table>"; 


// проверяваме таблицата колко редове има 
$query = "SELECT  COUNT(id) AS numrows FROM news"; 
$result = mysql_query($query) or die('Error, query failed'); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$numrows = $row['numrows']; 

$maxPage = ceil($numrows/$broinastranica); 

$self = $_SERVER['PHP_SELF']; 
$nomeranastranici = ''; 

for($page = 1; $page <= $maxPage; $page++) 
{ 
if ($page == $pageNum) 
{ 
$nomeranastranici .= " $page "; 
} 
else 
{ 
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> "; 
} 
} 



// създаване на ликовете [предишна] [следваща] 
// както и линковете [първа] и [последна] 


if ($pageNum > 1) 
{ 
$page = $pageNum - 1; 
$predishna = " <a href=\"$self?page=$page\"> [<<<<<] </a> "; 

$parva = " <a href=\"$self?page=1\">[първа]</a> "; 
} 
else 
{ 
$predishna = ' '; 
$parva = ' '; 
} 

if ($pageNum < $maxPage) 
{ 
$page = $pageNum + 1; 
$sledvashta = " <a href=\"$self?page=$page\"> [>>>>>] </a> "; 

$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> "; 
} 
else 
{ 
$sledvashta = ' '; 
$posledna = ' '; 
} 

// показваме 
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna; 





?>
 
PHP:
<?php 
include ('config.php');

// определяме колко реда да ни показва. В случая 20 на страница. 

$broinastranica = 2; 

// от коя страница да почне да показва.Може да искаме да е от втора или от последна. 

$pageNum = 1; 

// ако има получени данни $_GET['page'] ще покаже страницата с номер $_GET['page'] 

if(isset($_GET['page'])) 
{ 
$pageNum = $_GET['page']; 
} 

//тука определяме кои редове ще се показват - примерно ако $_GET['page']=2 
// ще покаже от 20 до 40-ти ред. 
$redove = ($pageNum - 1) * $broinastranica; 
//заявката ще върне само посочените редове - примерно от 20 до 40 в зависимост от $_GET['page'] 
$query = " SELECT novina,avtor,zaglavie, id FROM news ORDER BY id DESC LIMIT '$redove',' $broinastranica'"; 
$result = mysql_query($query) or die('Error, query failed'); 

echo "<table border=1>"; 
// print-ваме посочените редове в таблица. 
while($row = mysql_fetch_array($result)) 
{ 
print $row["zaglavie"]; 
print $row["novina"]; 
echo'<br>
<hr>
Автор: '; print $row["avtor"]; echo'   <br>'; 
} 

echo"</table>"; 


// проверяваме таблицата колко редове има 
$query = "SELECT  COUNT(id) AS numrows FROM news"; 
$result = mysql_query($query) or die('Error, query failed'); 
$row = mysql_fetch_array($result, MYSQL_ASSOC); 
$numrows = $row['numrows']; 

$maxPage = ceil($numrows/$broinastranica); 

$self = $_SERVER['PHP_SELF']; 
$nomeranastranici = ''; 

for($page = 1; $page <= $maxPage; $page++) 
{ 
if ($page == $pageNum) 
{ 
$nomeranastranici .= " $page "; 
} 
else 
{ 
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> "; 
} 
} 



// създаване на ликовете [предишна] [следваща] 
// както и линковете [първа] и [последна] 


if ($pageNum > 1) 
{ 
$page = $pageNum - 1; 
$predishna = " <a href=\"$self?page=$page\"> [<<<<<] </a> "; 

$parva = " <a href=\"$self?page=1\">[първа]</a> "; 
} 
else 
{ 
$predishna = ' '; 
$parva = ' '; 
} 

if ($pageNum < $maxPage) 
{ 
$page = $pageNum + 1; 
$sledvashta = " <a href=\"$self?page=$page\"> [>>>>>] </a> "; 

$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> "; 
} 
else 
{ 
$sledvashta = ' '; 
$posledna = ' '; 
} 

// показваме 
echo $parva . $predishna . $nomeranastranici . $sledvashta . $posledna; 





?>
 
РЕДАКТИРАЙ ГО С ПРАВИЛНИТЕ ИМЕНА НА ТАБЛИЦИ И ПОЛЕТА В ЗАЯВКИТЕ КЪМ БАЗАТА ДАННИ.

И ПРАВИЛНИ ИМЕНА НА ЛИНКОВЕТЕ.


PHP:
$sql = "SELECT COUNT(*) FROM table ORDER BY id DESC";
$result = mysql_query($sql) or trigger_error("SQL", E_USER_ERROR);

$r = mysql_fetch_row($result);
$numrows = $r[0];


$rowsperpage = 10;

$totalpages = ceil($numrows / $rowsperpage);



if (isset($_GET['currentpage'])) {
    if(isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
   
   $currentpage = (int)$_GET['currentpage'];
      }
} else {
   
   $currentpage = 1;
} 


if (@$currentpage > $totalpages) {
   
   $currentpage = $totalpages;
} 

if (@$currentpage < 1) {
   
   $currentpage = 1;
} 


$offset = ($currentpage - 1) * $rowsperpage;




$roww=mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT $offset, $rowsperpage");

while($row=mysql_fetch_assoc($roww)) {
   echo $row['smth'];
}




$range = 3;


if ($currentpage > 1) {
   
   echo " <a href='index.php?currentpage=1'><<</a> ";
   
   $prevpage = $currentpage - 1;
   
   echo " <a href='index.php?currentpage=$prevpage'><</a> ";
} 


for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
  
   if (($x > 0) && ($x <= $totalpages)) {
     
      if ($x == $currentpage) {
         
         echo " [<b>$x</b>] ";
     
      } else {
        
         echo " <a href='index.php?currentpage=$x'>$x</a> ";
      } 
   } 
} 


if ($currentpage != $totalpages) {
   
   $nextpage = $currentpage + 1;
    
   echo " <a href='index.php?currentpage=$nextpage'>></a> ";
   
   echo " <a href='index.php?currentpage=$totalpages'>>></a> ";
}
 

Back
Горе