Попытка отобразить список записей с помощью следующего сценария:
$start=0;
$limit=20;
if(isset($_GET['page']))
{
$page_id=$_GET['page'];
$start=($page_id-1)*$limit;
}
$_SESSION['pageid'] = $page_id; /* to send to edit page */
$rows=mysqli_query($link, "SELECT * FROM subscribers");
$rows=mysqli_num_rows($rows);
if ($rows == 0) {$total = 1;}
else if ($rows > 0)
{$total=ceil($rows/$limit);}
?>
<table align="center" cellpadding="2" style="width:25%;">
<tr>
<td><b>Log Id</b></td>
<td><b>Name</b></td>
<td><b>Expiry</b></td>
</tr>
<?php
$sql = "SELECT log_id, name, expiry FROM subscribers ORDER BY expiry ASC LIMIT $start, $limit";
$result = mysqli_query($link,$sql);
$total_sub = mysqli_num_rows($result);
if ($total_sub > 0) {
while($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?php echo $row["log_id"]; ?></td>
<td><?php echo $row["name"]; ?></td>
<td><?php echo $row["expiry"]; ?></td>
<td><a href="edit.php?id=<?php echo $row['log_id'] ?>"><img src='img/edit.png' height='15'></a></td>
</tr>
<?php
}
}
?>
<tr><td align="center" colspan="4">
<?php
if($page_id > 1){
echo "<a href='?page=".($page_id-1)."'><img src='img/previous.png'></a>";
}
echo " ".$page_id."/".$total." ";
if($page_id!=$total){
echo "<a href='?page=".($page_id+1)."'><img src='img/next.png'></a>";
}
?>
</td></tr></table>
Условие 1:
Ограничение страницы установлено на 20 записей на странице
Отображение порядка по дате истечения срока действия DES C
Пользователь 1, 2 и 3 имеют одинаковые даты (2020-11 -28).
Условие 2:
- То же, что и Условие 1, за исключением того, что порядок отображения по истечении срока действия теперь установлен на AS C.
на странице 1 отображается user1 (поскольку он становится 20-я запись теперь из-за изменения порядка).
стр. 2 отображает user1 (снова) и user3. Возникает проблема: пользователь 2 в этом случае вообще не отображается.
Условие 3:
- То же, что и условие 2, за исключением у пользователя user1 теперь другая дата (2020-11-27), а у пользователей user2 и 3 одинаковые старые даты (2020-11-28).
- Пользователи 1,2,3 отображаются корректно, даже если порядок AS C. Нет проблем.
Условие 4:
Ограничение на страницу установлено в 22 записи на страницу (таким образом, пользователи 1,2,3 может отображаться на той же странице).
у пользователей 1, 2 и 3 снова совпадают даты (2020-11-28).
Порядок отображения по дате истечения срока действия все еще равен AS C, что, похоже, вызывает проблему.
- пользователей 1,2, 3 отображаются правильно, даже если порядок AS C. Нет проблем.
Не можете понять, что является причиной проблемы в условии 2, если используется порядок AS C? Спасибо и извините за длинный вопрос.