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

topchokt

Registered
Здравей ,
доста четох и пробвах но така и не се получи . Някой може ли да направи този код , след като са показани 30 резултата , да се добавя втора , трета и т.н. страница. Тоест на страница по 30 резултата .
Код:
	<?php
//Попълвате данните за свързване
$connect = mysql_connect("localhost", "************", "");
$select_db = mysql_select_db("************");
mysql_query('set names cp1251',$connect);
if($_GET['id']){
$lyricid = $_GET['id'];
$query1 = "SELECT * FROM `lyrics` where id = '$lyricid'";
$result1=mysql_query($query1);
while($r = mysql_fetch_array($result1)) {
extract($r);
$text2 = nl2br("$text");
echo "";
}
}
else {
$query = "SELECT * FROM `lyrics` ORDER BY id DESC";
$result=mysql_query($query);
while($r = mysql_fetch_array($result)) {
extract($r);
echo "<a href='viewtexts.php?id=$id'>$izpulnitel - $pesen</a><br>";
}
}
?>
 
<?php
//server connfigure
$server = "localhost";
$dbusername = "dbusername";
$dbpassword = "dbpassword";
$db_name = "dbname";
$table_name = "table_name";
//server connfigure
//колко резултата на страница
$pp = "30";
//колко резултата на страница

$page=$_GET['page']; //присвояваме стойността на page

if(!$_GET['page']) //ако не е взета page да върне 1-ца
{
$page="1";
}

$limit = ($pp*$page)-$pp; //определяме лимитирането

mysql_connect($server, $dbusername, $dbpassword)or die("1111");
@mysql_select_db($db_name) or die("2222");
$redove=mysql_query("SELECT * FROM $table_name");

$max=mysql_numrows($redove); //преброяваме редовете
$total=ceil($max/$pp); //пресмятаме броя на страниците

mysql_connect($server, $dbusername, $dbpassword)or die("3333");
@mysql_select_db($db_name) or die("4444");
$query="SELECT * FROM $table_name ORDER BY `id` DESC LIMIT $limit,$pp";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

$i=0;
while ($i < $num) {

$data=mysql_result($result,$i,"data");

echo $data."<br>";

$i++;
}

echo "<br><br><br><br>";

$select_db = mysql_select_db("************");
mysql_query('set names cp1251',$connect);
if($_GET['id']){
$lyricid = $_GET['id'];
$query1 = "SELECT * FROM `lyrics` where id = '$lyricid'";
$result1=mysql_query($query1);
while($r = mysql_fetch_array($result1)) {
extract($r);
$text2 = nl2br("$text");
echo "";
}
}
else {
$query = "SELECT * FROM `lyrics` ORDER BY id DESC";
$result=mysql_query($query);
while($r = mysql_fetch_array($result)) {
extract($r);
echo "<a href='viewtexts.php?id=$id'>$izpulnitel - $pesen</a><br>";
}
}
if ($page > 1) {
$prev = ($page - 1);
echo "<a href=\"?page=$prev\"><font face=\"Trebuchet MS\">Предишна страница</font></a> ";
}
else echo "<font face=\"Trebuchet MS\">Предишна страница</font> ";

if (!$page or ($page > $total)) {
$page="1";
}

if ($total < 10) {
for($i=1 ; $i<=$total ; $i++) {
if ( ($page)==$i ) {
echo "<b>$i</b> ";
}
else {
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
}
}
else {
for($i=1 ; $i<=3 ; $i++) {
if ( ($page)==$i ) {
echo "<b>$i</b> ";
}
else {
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
}

if ($page <= 3) {
if ($page == 3) echo "<a href=\"?page=4\">4</a> ";
echo "... ";
for ($i=$total-2; $i<=$total; $i++)
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
if ($page == 5) $parva.= "<a href=\"?page=4\">4</a> ";

if ( ($page == 4) or ($page == 5) ) {
for ($i=$page; $i<=$page+1; $i++) {
if ($page == $i) echo "<b>$i</b> ";
else echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
echo "... ";
for ($i=$total-2; $i<=$total; $i++)
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}

if ( ($page > 5) and ($page < ($total - 4)) ) {
echo "... ";
for ($i=$page-1; $i<=$page+1; $i++) {
if ($page == $i) echo "<b>$i</b> ";
else echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
echo "... ";
for ($i=$total-2; $i<=$total; $i++)
echo "<a href=\"?page=".$i."\">".$i."</a> ";
}

if ( $page > ($total - 5) ) {
echo "... ";
for ($i=$total-5; $i<=$total; $i++) {
if ($page == $i) echo "<b>$i</b> ";
else echo "<a href=\"?page=".$i."\">".$i."</a> ";
}
}
}

if ($page < $total) {
$next = ($page + 1);
echo "<a href=\"?page=$next\"><font face=\"Trebuchet MS\">Следваща страница</font></a> ";
}
else echo "<font face=\"Trebuchet MS\">Следваща страница</font>";
?>

Не знам дали работи ако има нещо кажи
 
Код:
$connect = mysql_connect("localhost", "************", "");
$select_db = mysql_select_db("************");
mysql_query('set names cp1251',$connect);
if($_GET['id']){
$lyricid = $_GET['id'];
$query1 = "SELECT * FROM `lyrics` where id = '$lyricid'";
$result1=mysql_query($query1);
while($r = mysql_fetch_array($result1)) {
extract($r);
$text2 = nl2br("$text");
echo "";
}
}else {
$the_limit = "30";
$the_query = "SELECT * FROM `lyrics` ORDER BY id DESC";

$page = trim($_GET['page']);
if(is_numeric($page)){
	$page = $page * $the_limit;
	if( (!$page) or ($page == "0") ){
		$a = "0";
		$b = $the_limit;
	} else {
		$a = $page;
		$b = $a + $the_limit;
	}
} else {
	$a = "0";
	$b = $the_limit;
}
$query = $the_query." limit $a, $the_limit";
$result = mysql_query($query, $connect) or die (mysql_error());
$result_all = mysql_query($the_query, $connect) or die (mysql_error());
$num_all = mysql_num_rows($result_all);
while($red = mysql_fetch_array($result)){
	echo "<a href='viewtexts.php?id=$id'>$izpulnitel - $pesen</a><br>";
}
$num_pages = ceil($num_all / $the_limit);
for($i=0;$i<$num_pages;$i++) {
	$name = $i;
	$name++;
	if($name != $num_pages){
		$last = ", ";
	} else $last = "";
	$pages.= "<a href=\"?page=".$i."\">".$name."</a>".$last;
}
echo "<br /><br />";
echo "Страници: ".$pages.".";
}
Пробвай така, ако не стане с горния код. От този урок си страницирах новините. :)
 
PHP_Masters каза:
Не знам дали работи ако има нещо кажи

Дава ми грешка на 41 ред , а там е
Код:
$data=mysql_result($result,$i,"data");

Пробвах и втората , при нея излизат бройките добавени тестове , но не излизат името на изпълнителя и песента .
 

Back
Горе