#php #mysql #pagination
#php #mysql #разбивка на страницы
Вопрос:
Я использую простую разбивку на страницы PHP-MySQL и использую серийный номер для своих записей. для этой цели я использую следующий код,
$serial = 1;
$sql= mysql_query("SELECT * FROM TABLE LIMIT $limit");
while($row = mysql_fetch_array($sql)) {
$s_num = $serial ;
$name = $row['name'];
echo $s_num . $name."<br>";
}
Теперь проблема в том, что серийный номер начинается с 1 на каждой странице моей разбивки на страницы, в то время как мне он нужен с 11-20 на 2-й странице, с 21-30 на 3-й странице и так далее.
Комментарии:
1. Вам нужно добавить (текущая страница) * $ предельное значение в $s_num
Ответ №1:
добавьте $page
переменную, чтобы получить ее $_GET
.
$serial = ($page * $limit) 1;
$sql = mysql_query("SELECT * FROM TABLE LIMIT ".($page * $limit).", $limit");
while($row = mysql_fetch_array($sql)) {
$s_num = $serial ;
$name = $row['name'];
echo $s_num . $name."<br>";
}
Это правильно, но переменная page.должна начинаться с 0…. В противном случае серийный номер начинается с 11….
Ответ №2:
добавьте $page
переменную, получите ее из $_GET
.
$page = $_GET['page'];
if (!$page) $page = 0;
else $page--; //first page become 0 instead of 1
$serial = ($page * $limit) 1;
$sql = mysql_query("SELECT * FROM TABLE LIMIT ".($page * $limit).", $limit");
while($row = mysql_fetch_array($sql)) {
$s_num = $serial ;
$name = $row['name'];
echo $s_num . $name."<br>";
}