Странициране на новините

topchokt

Registered
Здравейте ,
доста четох за страницирането , пробвах но така и не успях да го оправя . Ето защо се обръщам с молба към Вас , да ми помогнете ...
Ето това е кода който извежда новините:
Код:
	<?php
include ('conf.php');//добавяме config файла

$sqlquery = "SELECT * from news order by id desc";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}
?>
Но тъй като в момента има добавени доста новини и страницата се удължава което не удобно , трябва да го страницирам но не успявам та ако може да направите някое по-простичко страницирате . Нека на страница се показват по 10 новини.


Благодаря :)
 
Код:
<?php
include ('conf.php');//добавяме config файла

$broinastranica = 30;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$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 = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";

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

$sqlquery = "SELECT * from news order by id desc LIMIT $redove, $broinastranica";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}

echo "<font color = '#000' />Страница: </font>";
echo "<font color = '#000' />$nomeranastranici</font>";
?>
 

Може ли да се направи едно долу до номерацията на страниците да има едно "Предишна" и "Следваща" ? Ако не може , здраве да е .
 
Пробвай така :

Код:
	 <?php
include ('conf.php');//добавяме config файла

$broinastranica = 30;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$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 = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";

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

$sledva6ta = "<a href=\"$self?page=$page+1\">Следваща</a> ";
$predi6na = "<a href=\"$self?page=$page-1\">Предишна</a> ";


$sqlquery = "SELECT * from news order by id desc LIMIT $redove, $broinastranica";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}
echo "<font color = '#000' />Предишна - $predi6na</font>";
echo "<font color = '#000' />Страница: </font>";
echo "<font color = '#000' />$nomeranastranici</font>";
echo "<font color = '#000' />Следваща - $sledva6ta</font>";
?>
 
Нещо има проблем . Например когато съм на първа страница и цъкна на "Следваща" линка става така news.php?page=3+1 и разбира се не показва никакви резултати .
 
Код:
    <?php
include ('conf.php');//добавяме config файла

$broinastranica = 30;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$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 = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";

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

$spage=$page+1;
$ppage=$page-1;
$sledva6ta = "<a href=\"$self?page=$spage\">Следваща</a> ";
$predi6na = "<a href=\"$self?page=$ppage\">Предишна</a> ";


$sqlquery = "SELECT * from news order by id desc LIMIT $redove, $broinastranica";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}
echo "<font color = '#000' />Предишна - $predi6na</font>";
echo "<font color = '#000' />Страница: </font>";
echo "<font color = '#000' />$nomeranastranici</font>";
echo "<font color = '#000' />Следваща - $sledva6ta</font>";
?>
 
Сега когато съм на първа страница и цъкна на "Следваща" ме праща в 4 страница . Когато съм в 2 страница и цъкна на 'Предишна' ме праща в 0 страница :D
 
Заповядай :)

Код:
	    <?php
include ('conf.php');//добавяме config файла

$broinastranica = 5;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$query = "SELECT COUNT(id) AS numrows FROM `albums`";
$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 = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";
}
else
{
$predishna = ' ';
}
$npage=$pageNum;
$nn=$pageNum+1;
if ($maxPage != $npage AND $maxPage > $npage)
{
$next = " <font color=orange><a href=\"$self?page=$nn\"> [>] </a></font>";
}
else
{
$next = "";
}

$sqlquery = "SELECT * from news order by id desc LIMIT $redove, $broinastranica";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}
	echo "<font color = '#000' />$predishna</font>";
	echo "<font color = '#000' />Страница: </font>";
echo "<font color = '#000' />$nomeranastranici</font>";
	echo "<font color = '#000' />$next</font>";
?>
 
Сега не показва нищо - нито номер на страница нико "Следваща" нито "Предишна" . Отдолу .
 
Извинявай, малко объркане се получи, защото си го тествах, ето :)

Код:
       <?php
include ('conf.php');//добавяме config файла

$broinastranica = 5;
$pageNum = 1;
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$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 = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";
}
else
{
$predishna = ' ';
}
$npage=$pageNum;
$nn=$pageNum+1;
if ($maxPage != $npage AND $maxPage > $npage)
{
$next = " <font color=orange><a href=\"$self?page=$nn\"> [>] </a></font>";
}
else
{
$next = "";
}

$sqlquery = "SELECT * from news order by id desc LIMIT $redove, $broinastranica";

$queryresult = mysql_query($sqlquery)
or die ("Заявката не може да се изпълни");
//показване на данните от базата данни
while ($row = mysql_fetch_array($queryresult))
{


if (strlen($row[ime])>$zbroi)
{$totchki='...';}
else
{$totchki='';}
$kratko = substr($row[ime],0,$zbroi);
$s = mysql_query("SELECT * FROM comment WHERE article = $row[id]");
$com = mysql_num_rows($s);
echo "
".
$pic."

<font size=\"2\">$kratko".$totchki."</font><br />

 <a href='view.php?id=$row[id]' class='more' >Прочети</a><font size=\"2\"> <a class='more' align='right' rel='#'>Публикувана на:<b>$row[date]</b></a> <a class='author' align='right' rel='#'>Автор:<b>$row[awtor]</b></a></font> <a class='more' align='right' rel='#'><b><img src='i/icons/comments.png' alt='hiphop news comment' width='16' height='16'> Коментари - <font color='#747474' >$com</font> </span> </b></a></font> <br />

";
}
   echo "<font color = '#000' />$predishna</font>";
   echo "<font color = '#000' />Страница: </font>";
echo "<font color = '#000' />$nomeranastranici</font>";
   echo "<font color = '#000' />$next</font>";
?>
 

Back
Горе