Как да преправя страницирането?

Kameliaa

Registered
Здравейте, използвам за страниците този код, но той ми извежда в бутоните всички номера на страниците. Ако има 150 страници ги изважда със 150 бутона. Има ли как да се стане да ги показва както е във всички сайтове примерно 5 бутона (1 2 3 4 5 ... 150 )
Намерих няколко в нета, но всички са с ужасно сложни и не мога да ги пригодя



Код:
<? 
$sql = "SELECT COUNT(`id`) as `rows` FROM таблица WHERE kategoria='$kategoria'";
$total = mysql_fetch_assoc(mysql_query($sql));
$total = $total['rows'];
$limit = 5; 
$pages = ceil($total / $limit); 
$current_page = isset($_GET['s']) ? ($_GET['s'] - 1) : 0;

$sql = "SELECT * FROM таблица WHERE kategoria='$kategoria' ORDER BY id DESC limit " . ($current_page * $limit) . "," . $limit ." ";  
$result = mysql_query($sql); 
while($row=mysql_fetch_array($result)){
?>


тук е резултата от бд

<?
}
?>

<?php
for ($i = 1; $i <= $pages; $i++) {
echo '<a href="?stranica&kategoria=' .$kategoria. '&s=' . $i . '&e=1">' . $i . '</a> | ';
}
?>
 
Виж този урок http://web-tourist.net/login/login/view.php?st=955 страницирането е като тук в webtourist-а
 
Колега, ето това дано те устройва. Реално в момента ти показва първата средната и последната страница. :)
PHP:
for ($i = 1; $i <= $pages; $i++) {
switch($i){
	case 1:
	case ceil($pages/2):
	case $i >= $pages:
		echo '<a href="?stranica&kategoria=' .$kategoria. '&s=' . $i . '&e=1">' . $i . '</a>|';
		break;
	default : echo '.|';
}}
 
dakata__92 каза:
Колега, ето това дано те устройва. Реално в момента ти показва първата средната и последната страница. :)
PHP:
for ($i = 1; $i <= $pages; $i++) {
switch($i){
	case 1:
	case ceil($pages/2):
	case $i >= $pages:
		echo '<a href="?stranica&kategoria=' .$kategoria. '&s=' . $i . '&e=1">' . $i . '</a>|';
		break;
	default : echo '.|';
}}

Колежка :)
Но когато добавя това няма странициране, а показва само първа, средна и последна страница :cry:
 
teroristd каза:
Виж този урок http://web-tourist.net/login/login/view.php?st=955 страницирането е като тук в webtourist-а

Ок благодаря, това изглежда по-лесно с от другите , които пробвах, но и него не мога да го нагодя. Тук трябва да се въведе БД, а аз имам конфиг файл, не зная къде трябва да си изведа БД резултатите,........ не разбирам до такава степен..... :cry:
 
PHP:
for ($i = 1; $i <= $pages; $i++) {
switch($i){
        case 1:
        case 2:
        case 3:
                echo '<a href="?stranica&kategoria=' .$kategoria. '&s=' . $i . '&e=1">' . $i . '</a>|';
                break;
        default : continue;
}}
 
сега са само 3 :cry: но нали идеята беше да се показват копчета с всички странички. Както е тук във форума. Примерно, 1 2 3 .... 156 157 158
 
Kameliaa каза:
teroristd каза:
Виж този урок http://web-tourist.net/login/login/view.php?st=955 страницирането е като тук в webtourist-а

Ок благодаря, това изглежда по-лесно с от другите , които пробвах, но и него не мога да го нагодя. Тук трябва да се въведе БД, а аз имам конфиг файл, не зная къде трябва да си изведа БД резултатите,........ не разбирам до такава степен..... :cry:

Предполагам че инклудваш конфиг файла и имаш конекция към базата. В този случай просто прмахваш тези редове.
Код:
$server = "localhost"; 
$dbusername = "dbusername"; 
$dbpassword = "dbpassword"; 
$db_name = "dbname";

тази конекция я има два пъти и нея я премахваш
Код:
mysql_connect($server, $dbusername, $dbpassword)or die("1111"); 
@mysql_select_db($db_name) or die("2222");

това ти е името на таблицата $table_name = "table_name"; трябва да я заместиш в заявките с твоята таблица

Това е би трябвало да работи
 
Най-лесно за писане и разбиране (което не е най-добрия вариант) е да сложиш един

HTML:
<input type=number max={броя на страниците} min=1 name=pagenumber />

в една форма с един input type=submit.

После в скрипта ще имаш просто
PHP:
$pagenumber=$_GET['pagenumber'];

Като не забравяш разбира се да провериш за съществуването на $_get-a и дали съществува тази страница.
 
Kameliaa каза:
сега са само 3 :cry: но нали идеята беше да се показват копчета с всички странички. Както е тук във форума. Примерно, 1 2 3 .... 156 157 158
Добре де, така ли не се усещаш да направиш:
PHP:
$pages = 10;
$kategoria = "pet";
for ($i = 1; $i <= $pages; $i++) {
	switch($i){
		case 1:
		case 2:
		case 3:
		case $i >= $pages:
		case $i ==  ($pages-1):
		case $i ==  ($pages-2):
			echo '<a href="?stranica&kategoria=' .$kategoria. '&s=' . $i . '&e=1">' . $i . '</a>|';
			break;
		default : echo '.|';

}}
Просто прибави последните страници. Средните точки можеш да ги премахнеш като премахнеш default : echo '.|'; или го направиш default : continue; или просто сложиш някакъв друг разделител. По принцип това ако точно това ти е целта без проблем можеш и без цикъл да извеждаш тези 6 реда код ако е точно това което искаш като така ще си спестиш излишните интерации. :)
 
@dakata__92 да, горе долу схванах това. Но по този начин показва само първите 3 и последните 3, без да ги сменя. след 3 не показва копче за четвърта страница, след четвърта за 5 и тнт.
Просто си стои статично 1 2 3 ... 156 157 158
 
teroristd каза:
Kameliaa каза:
teroristd каза:
Виж този урок http://web-tourist.net/login/login/view.php?st=955 страницирането е като тук в webtourist-а

Ок благодаря, това изглежда по-лесно с от другите , които пробвах, но и него не мога да го нагодя. Тук трябва да се въведе БД, а аз имам конфиг файл, не зная къде трябва да си изведа БД резултатите,........ не разбирам до такава степен..... :cry:

Предполагам че инклудваш конфиг файла и имаш конекция към базата. В този случай просто прмахваш тези редове.
Код:
$server = "localhost"; 
$dbusername = "dbusername"; 
$dbpassword = "dbpassword"; 
$db_name = "dbname";

тази конекция я има два пъти и нея я премахваш
Код:
mysql_connect($server, $dbusername, $dbpassword)or die("1111"); 
@mysql_select_db($db_name) or die("2222");

това ти е името на таблицата $table_name = "table_name"; трябва да я заместиш в заявките с твоята таблица

Това е би трябвало да работи


:cry: :cry: :cry:
 
Kameliaa каза:
@dakata__92 да, горе долу схванах това. Но по този начин показва само първите 3 и последните 3, без да ги сменя. след 3 не показва копче за четвърта страница, след четвърта за 5 и тнт.
Просто си стои статично 1 2 3 ... 156 157 158
Такъв ти е цикъла колежке. :)
 
Kameliaa каза:
teroristd каза:
Kameliaa каза:
Ок благодаря, това изглежда по-лесно с от другите , които пробвах, но и него не мога да го нагодя. Тук трябва да се въведе БД, а аз имам конфиг файл, не зная къде трябва да си изведа БД резултатите,........ не разбирам до такава степен..... :cry:

Предполагам че инклудваш конфиг файла и имаш конекция към базата. В този случай просто прмахваш тези редове.
Код:
$server = "localhost"; 
$dbusername = "dbusername"; 
$dbpassword = "dbpassword"; 
$db_name = "dbname";

тази конекция я има два пъти и нея я премахваш
Код:
mysql_connect($server, $dbusername, $dbpassword)or die("1111"); 
@mysql_select_db($db_name) or die("2222");

това ти е името на таблицата $table_name = "table_name"; трябва да я заместиш в заявките с твоята таблица

Това е би трябвало да работи


:cry: :cry: :cry:

Kакво ще рече това че не си могла да го подкараш :) . Пусни кода на страницата която искаш да страницираш и конфиг фаила с конекцията към базата и някой ще ти помогне.
 

Back
Горе