Используйте String.Format () с помощью спецификатора формата . Я думаю, вы хотите {0: F20} или так.
string formatted = String.Format("{0:F20}", value);
Просто используйте предложение LIMIT
.
SELECT * FROM `msgtable` WHERE `cdate`='18/07/2012' LIMIT 10
И со следующего звонка вы можете сделать это следующим образом:
SELECT * FROM `msgtable` WHERE `cdate`='18/07/2012' LIMIT 10 OFFSET 10
Больше информации о OFFSET
и LIMIT
на LIMIT
и OFFSET
.
для первых 10 строк ...
SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT 0,10
для следующих 10 строк
SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT 10,10
SET @rownum = 0;
SELECT sub.*, sub.rank as Rank
FROM
(
SELECT *, (@rownum := @rownum + 1) as rank
FROM msgtable
WHERE cdate = '18/07/2012'
) sub
WHERE rank BETWEEN ((@PageNum - 1) * @PageSize + 1)
AND (@PageNum * @PageSize)
Каждый раз, когда вы передаете параметры @PageNum
и @PageSize
, чтобы получить конкретную страницу, которую вы хотите. Например, первые 10 строк будут @PageNum = 1 and @PageSize = 10
<html>
<head>
<title>Pagination</title>
</head>
<body>
<?php
$conn = mysqli_connect('localhost','root','','northwind');
$data_per_page = 10;
$select = "SELECT * FROM `customers`";
$select_run = mysqli_query($conn, $select);
$records = mysqli_num_rows($select_run);
// while ($result = mysqli_fetch_array($select_run)) {
// echo $result['CompanyName'] . '<br>';
// }
// $records;
echo "<br>";
$no_of_page = ceil($records / $data_per_page);
if(!isset([110]GET['page'])){
$page = 1;
}else{
$page = [110]GET['page'];
}
$page_limit_data = ($page - 1) * 10;
$select = "SELECT * FROM customers LIMIT " . $page_limit_data . ',' . $data_per_page ;
$select_run = mysqli_query($conn, $select);
while ($row_select = mysqli_fetch_array($select_run)){
echo $row_select['CompanyName'] . '<br>' ;
}
for($page=1; $page<= $no_of_page; $page++){
echo "<a href='pagination.php?page=$page'> $page" . ', ';
}
?>
<br>
<h1> Testing Limit Functions Here </h1>
<?php
$limit = "SELECT CompanyName From customers LIMIT 10 OFFSET 5";
$limit_run = mysqli_query($conn , $limit);
while($limit_result = mysqli_fetch_array($limit_run)){
echo $limit_result['CompanyName'] . '<br>';
}
?>
</body>
</html>
Вы можете использовать postgresql Cursors
BEGIN;
DECLARE C CURSOR FOR where * FROM msgtable where cdate='18/07/2012';
Затем используйте
FETCH 10 FROM C;
, чтобы получить 10 строк.
Финский с
COMMIT;
, чтобы закрыть курсор.
Но если вам нужно сделать запрос в разных процессах, лучше использовать LIMIT и OFFSET, как предложено @Praveen Kumar
Хорошо. Поэтому я думаю, что вам просто нужно реализовать разбиение на страницы.
$perPage = 10;
$pageNo = Хорошо. Поэтому я думаю, что вам просто нужно реализовать разбиение на страницы.
[110] Теперь найдите общее количество строк в базе данных.
$totalRows = Get By applying sql query;
$pages = ceil($totalRows/$perPage);
$offset = ($pageNo - 1) * $perPage + 1
$sql = "SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT ".$offset." ,".$perPage
GET['page'];
Теперь найдите общее количество строк в базе данных.
$totalRows = Get By applying sql query;
$pages = ceil($totalRows/$perPage);
$offset = ($pageNo - 1) * $perPage + 1
$sql = "SELECT * FROM msgtable WHERE cdate='18/07/2012' LIMIT ".$offset." ,".$perPage
LIMIT limit OFFSET offset
будет работать.
Но вам нужно стабильное ORDER BY
предложение , или значения могут быть упорядочены по-разному для следующего вызова (например, после любой записи в таблицу).
SELECT *
FROM msgtable
WHERE cdate = '2012-07-18'
ORDER BY msgtable_id -- or whatever is stable
LIMIT 10
OFFSET 50; -- to skip to page 6
Используйте соответствующий стандарту стиль даты ( ISO 8601 в моем примере ), который работает независимо от ваших настроек локали.
Пейджинг будет по-прежнему смещаться, если соответствующие строки будут вставлены, удалены или изменены в соответствующих столбцах. Это должно.
Чтобы избежать этого сдвига или повысить производительность при работе с большими таблицами, используйте более умные стратегии разбиения на страницы :