2014-07-15 4 views
0

Я разработал код для разбивки на страницы в моем приложении с php и mysql. Пропуская номера страниц в querystring с вопросительным знаком, но я хочу передать параметр номера страницы с хешем вместо вопросительного знака. Следующим является мой код с вопросительным знаком. Пожалуйста, помогите мне в прохождении параметра номера страницы с помощью символа hash в url вместо вопросительного знака. Помогите парням.pagination in php with hash in url

<html> 
<head> 
<title>Paging Using PHP</title> 
</head> 
<body> 
<?php 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$rec_limit = 10; 

$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('dbname'); 
/* Get total number of records */ 
$sql = "SELECT count(*) FROM tablename"; 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
$row = mysql_fetch_array($retval, MYSQL_NUM); 
$rec_count = $row[0]; 

if(isset($_GET{'page'})) 
{ 
    $page = $_GET{'page'} + 1; 
    $offset = $rec_limit * $page ; 
} 
else 
{ 
    $page = 0; 
    $offset = 0; 
} 
$left_rec = $rec_count - ($page * $rec_limit); 

$sql = "SELECT col1,col2,col3 FROM tablename LIMIT $offset, $rec_limit"; 

$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
    echo "EMP ID :{$row['col1']} <br> ". 
     "EMP NAME : {$row['col2']} <br> ". 
     "EMP SALARY : {$row['col3']} <br> ". 
     "--------------------------------<br>"; 
} 

if($page > 0) 
{ 
    $last = $page - 2; 
    echo "<a href=\"pagination2.php?page=$last\">Last 10 Records</a> |"; 
    echo "<a href=\"pagination2.php?page=$page\">Next 10 Records</a>"; 
} 
else if($page == 0) 
{ 
    echo "<a href=\"pagination2.php?page=$page\">Next 10 Records</a>"; 
} 
else if($left_rec < $rec_limit) 
{ 
    $last = $page - 2; 
    echo "<a href=\"$_PHP_SELF?page=$last\">Last 10 Records</a>"; 
} 
mysql_close($conn); 
?> 

Пожалуйста, помогите мне мимоходом страницу параметра номер с параметром хеш

+0

OK. Я сделаю это: Имейте в виду, что PHP mysql_ API устарел. И никогда не доверяйте никому, что кто-либо подает в вашу базу данных - наименьшее из $ GET! – Strawberry

+0

k.sir.will измените его на mysqli или PDO. Пожалуйста, помогите с изменением кода – user3840361

ответ

0

Все, что от хэша года не отправлялись на сервер. Если вам нужно использовать хэши, вам нужно будет реализовать разбиение на страницы на стороне клиента, используя что-то вроде Sammy.js.

В качестве второго варианта вы можете поместить деталь после хэша в скрытое поле, если вы запрашиваете post запрос на сервер, как предлагается in this question.

Наконец, хороший способ настроить навигацию - использовать / (Прямые косые черты) вместо хешей, как это используется в некоторых CMS, таких как Joomla. В принципе, если вы запросите somewebsite.com/index.php/MyPaginationParameter, он по-прежнему останется в somewebsite.com/index.php, и вы можете вычеркнуть часть MyPaginationParameter с URL-адреса запроса.

+0

. Я не получил статью, могу ли я указать мою часть кода, где мне нужно изменить. – user3840361

+0

Можем ли мы передать параметры разбивки на страницы с помощью косой черты? – user3840361

+0

Не знаете, что вы здесь задаете. В моем сообщении я указываю, как использовать косую черту – neelsg

0

Не пропускать код или писать код, а объяснять вам алгоритм.

Укажите, сколько запросов должно отображаться на странице, позволяет взять пример из 25 запросов на страницу.

QueriesPerPage=25; 
pageSelected=USER_INPUT; //if (NO USER_INPUT) pageSelected = 1 

So switch(pageSelected) 
case 1 //FIRST PAGE 
show (0 , QueriesPerPage); 

default: //ANY PAGE OTHER THAN 1st 
show (QueriesPerPage*(pageSelected-1) , QueriesPerPage*pageSelected); 


FuncTIOn show (START,END) 
{ 
SELECT * FROM THIS LIMIT START,END; 
} 

Если вы примените этот алгоритм, он создаст эффективный скрипт. Надеюсь, это вам поможет.